Laden...

DataGrid Filtern

Erstellt von C-Bear vor 3 Jahren Letzter Beitrag vor 3 Jahren 840 Views
C
C-Bear Themenstarter:in
2 Beiträge seit 2020
vor 3 Jahren
DataGrid Filtern

Hallo

Ich möchte in einem bestehen DataGrid Filtern.

Mein DataGrid:



        <DataGrid Margin="11,10,10,10" x:Name="NEUGridView" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" HorizontalGridLinesBrush="Gray" 
          VerticalGridLinesBrush="LightGray" IsReadOnly="True" HeadersVisibility="Column" HorizontalScrollBarVisibility="Disabled" ScrollViewer.CanContentScroll="True" MinHeight="88" RowHeight="30" Background="White" BorderBrush="#FF5B5B5B" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2">
            <DataGrid.CellStyle>
                <Style TargetType="DataGridCell">
                    <Setter Property="Padding" Value="5"/>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type DataGridCell}">
                                <Border Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                                    <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                                </Border>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </DataGrid.CellStyle>

            <DataGrid.Columns>
                <DataGridTextColumn Width="80" x:Name="BtZ" Binding ="{Binding ZZZ}" Header="Höhe">
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="HorizontalAlignment" Value="Right"></Setter>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
                <DataGridTextColumn Width="80" x:Name="BtY" Binding ="{Binding YYY}" Header="Breite">
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="HorizontalAlignment" Value="Right"></Setter>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
                <DataGridTextColumn Width="80" x:Name="BtX" Binding ="{Binding YYY}" Header="Länge">
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="HorizontalAlignment" Value="Right"></Setter>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
            </DataGrid.Columns>

        </DataGrid>

dies wird beschrieben:


                        NEUGridList temp = new BVGridList();
                        temp.XXX= AddGrid_BtX;
                        temp.YYY= AddGrid_BtY;
                        temp.ZZZ= AddGrid_BtZ;
                        NEUGridView.Items.Add(temp);
        public class NEUGridList
        {
            public string XXX{ get; set; }
            public string YYY { get; set; }
            public string ZZZ { get; set; }
        }

in denn felder XXX/YYY/ZZZ sind werte wie 100, 140, 500 etc drin. jetzt möchte ich das nur zeilen mit den werten XXX = 500 und YYY = 140 angezeigt werden.

Ich probiere jetzt schon seit mehrern Stunden rum aber komme leider zu keinem Ergebnis.

Ich Suche in etwas sowas: https://help.syncfusion.com/wpf/datagrid/filterrow
gibt es da auch freeware?

Kann mir jemand Helfen?

W
955 Beiträge seit 2010
vor 3 Jahren

* du kannst eine CollectionView verwenden
* du kannst das MVVM-Pattern verwenden um die anzuzeigenden Daten in einem ViewModel zu abstrahieren

C
C-Bear Themenstarter:in
2 Beiträge seit 2020
vor 3 Jahren

Jetzt Verstehe ich nur Bahnhof.

Ich habe jetzt noch folgendes gefunden: https://www.nuget.org/packages/DataGridExtensions/

Wie kann ich dort eine mehrfachauswahl machen anstatt nur einer Input zeile?

16.840 Beiträge seit 2008
vor 3 Jahren

Wie witte bereits sagte; wende den MVVM Pattern an.
WPF ist auf die Verwendung dieses Patterns ausgelegt. Verwendest Du ihn nicht dann wirst Du von Workaround zu Workaround stolpern.

Filtern kannst Du dann sehr einfach über eine Linq Expression.
=> Dynamically Build LINQ Expressions

[Artikel] MVVM und DataBinding

Auch das von Dir verlinkte Grid erwartet die Verwendung des MVVM Patterns.
Wie das Grid funktioniert kannst Du einfach der GitHub Seite entnehmen: https://github.com/tom-englert/DataGridExtensions
Ob das Deine Anforrderungen erfüllt; das können wir nicht wissen. Musst selbst raus finden.