Ich verwende ein WPF Datagrid mit einem RowDetails-Panel, wo der RowDetailsVisibilityMode auf "VisibleWhenSelected" und den SelectionMode = "Extended" festgelegt ist, so dass mehrere Zeilen ausgewählt werden können und RowDetails angezeigt werden unten:WPF Datagrid RowDetailsTemplate Sichtbarkeit an eine Eigenschaft gebunden
<dg:DataGrid x:Name="MyGrid"
ItemsSource="{Binding Path=MyItems}"
AutoGenerateColumns="True"
SelectionMode="Extended"
RowDetailsVisibilityMode="VisibleWhenSelected">
<dg:DataGrid.RowDetailsTemplate>
<DataTemplate>
<TextBlock Text="Further Details..."/>
</DataTemplate>
</dg:DataGrid.RowDetailsTemplate>
...
</dg:DataGrid>
Leider für diese Anwendung Reihe Details zu ‚ausgewählt‘ Zeilen anzuzeigen es nicht intuitiv ist, würde der Kunde möchte eine Checkbox auf einer Anzahl von Zeilen klicken, um den RowDetails Bereich anzuzeigen, sondern auch Scrollen Sie durch das Raster, indem Sie andere Zeilen auswählen. Mit anderen Worten: Fixieren Sie die Zeilen, die RowDetails anzeigen, unabhängig davon, was auf dem DataGrid passiert.
Das Scrollen umher schließt also die RowDetailsPanes, die sie geöffnet haben. Ich möchte eine Checkbox in einer der Spalten haben und die RowDetails-Panel-Sichtbarkeit an diese Eigenschaft binden, aber ich kann nicht herausfinden, wie es geht. Das Problem ist einfach, dass RowDetailsPane nur auf den Zeilenauswahl (en) im Datagrid funktioniert - kann es irgendwie erweitert werden, um auf einer Eigenschaft meiner Wahl zu operieren?
Vielen Dank im Voraus, Will
Dank Rory, schöne Lösung. Dies ist genau das, was ich wollte, ich war falsch in Bezug auf die Bindung an eine Eigenschaft in meinem ViewModel zu denken, da dies reine View-Funktionalität ist, so dass die Methode, die auf das Click-Ereignis des Kontrollkästchens funktioniert, perfekt ist. – WillH
Dies funktioniert auch für Silverlight, wenn Sie den anfänglichen DataGrid.RowDetailsVisibilityMode = "Collapsed" –