Laden...

DataGrid RowDetails über CheckboxColumn erweitern/verstecken

Erstellt von Taki Haki vor 12 Jahren Letzter Beitrag vor 12 Jahren 3.063 Views
Taki Haki Themenstarter:in
168 Beiträge seit 2005
vor 12 Jahren
DataGrid RowDetails über CheckboxColumn erweitern/verstecken

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

3.430 Beiträge seit 2007
vor 12 Jahren

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

Taki Haki Themenstarter:in
168 Beiträge seit 2005
vor 12 Jahren

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

3.430 Beiträge seit 2007
vor 12 Jahren

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

Taki Haki Themenstarter:in
168 Beiträge seit 2005
vor 12 Jahren

Danke für den Tipp michlG,

ich probiert es mal aus.

Gruß Taki