Używam DataGrid WPF z panelem RowDetails, w którym parametr RowDetailsVisibilityMode jest ustawiony na "VisibleWhenSelected" i SelectionMode = "Extended", tak aby można było wybrać wiele wierszy, a tym samym wyświetlić szczegóły wiersza, jako poniżej:WPF Datagrid RowDetailsWskazówkaTemplate związana z właściwością
<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>
Niestety, dla tej aplikacji nie jest intuicyjny, aby wyświetlić szczegóły wiersz na „wybranych” wierszy, klient chciałby kliknij pole wyboru w wielu rzędach, aby wyświetlić panel RowDetails, ale również przewijaj siatkę, wybierając inne wiersze. Innymi słowy, naprawiaj wiersze wyświetlające dane RowDetails, bez względu na to, co dzieje się w DataGrid.
Tak obecnie przewijanie zamyka RowDetailsPanes, które otworzył. Chciałbym mieć pole wyboru w jednej z kolumn i powiązać widoczność panelu RowDetails z tą usługą, ale nie wiem, jak to zrobić. Problem polega na tym, że RowDetailsPane działa tylko w zaznaczeniu wiersza w datagrid - czy można go w jakiś sposób rozszerzyć, aby działał na wybranej przeze mnie własności?
Dzięki z góry, Will
Dzięki Rory, ładne rozwiązanie. Dokładnie tego chciałem, myliłem się myśląc w kategoriach wiązania do właściwości w moim ViewModelu, ponieważ jest to funkcja czysto View, więc metoda działająca na zdarzeniu click tego pola wyboru jest idealna. – WillH
To również działa dla Silverlight, jeśli ustawisz początkowy DataGrid.RowDetailsVisibilityMode = "Collapsed" –