Hallo,
ich suche eine Möglichkeit die RowDetails in einem DataGrid über eine Checkbox für jede Row separat einzublenden und auszublenden.
Ich habe bei stackoverflow.com auf diese Anforderung folgende Lösung gefunden
Two ways:
Just add an Trigger on the IsChecked property of the checkbox, and then set the Visibility of the property of the row details to the property of the IsChecked property
simply bind the IsChecked to the Visibility property of the row details
Leider habe ich keine Ahnung wie das konkret umzusetzen ist.
Die DataItems des DataGrid werden über ein Bindung bezogen.
Hier mein Beispiel
<Grid >
<DataGrid Name="dg" AutoGenerateColumns="False" SelectionMode="Extended" CanUserAddRows="False" >
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<TextBlock>Detail: </TextBlock>
<TextBlock Text="{Binding Detail}" />
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<DataGridCheckBoxColumn x:Name="toggleBox" />
<DataGridTextColumn Header="Vorname" Binding="{Binding Vorname}" Width="150"/>
<DataGridTextColumn Header="Nachname" Binding="{Binding Nachname}"/>
<DataGridTextColumn Header="Geburtsdatum" Binding="{Binding Geburtsdatum}" Width="*"/>
</DataGrid.Columns>
<DataGrid.Triggers>
<!--<Trigger SourceName="toggleBox" Property="IsChecked" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>-->
</DataGrid.Triggers>
</DataGrid>
</Grid>
Weiß jemand wie man das ganze nur um XAML mit Triggern und co umsetzen kann?
Gruß Taki
Hallo Taki Haki,
du kannst die Checkbox ja auch in deinem DataTemplate hinzufügen.
Dann kannst du auch darin einfach die IsChecked-Eigenschaft verwenden um das Panel einzublenden / auszublenden.
Grüße
Michael
Hallo michlG,
meinst du das DataTemplate der RowDetailsTemplate?
Das soll ja erst zu sehen sein wenn die CHeckbox in der Row (erste spalte) angeklickt wird und deshalb muss die Checkbox außerhalb des RowDetails Bereichts vorhanden sein.
Ich möchte die Checkbox deshalb als als eigene Spalte einfügen.
Oder versteh ich dich jetzt falsch?
Gruß Taki
Hallo,
ah ok. Ich habe da was überlesen.
Siehe WPF DataGrid RowDetailsTemplate Visiblity bound to a property
oder WPF DataGrid RowDetailsTemplate Visibility binidnig to a property with xaml only
Ich habe jetzt noch nicht direkt selbst was damit gemacht. Aber des scheint recht simple zu sein.
Grüße
Michael