#.net #wpf #wpfdatagrid
#.net #wpf #wpfdatagrid
Вопрос:
На данный момент моя DataGrid показывает RowDetails при нажатии на строку. Но я хочу показывать RowDetails только при двойном щелчке.
Есть идеи по решению этой проблемы?
Спасибо!
Ответ №1:
например ,
<DataGrid RowDetailsVisibilityMode="Collapsed">
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<EventSetter Event="MouseDoubleClick" Handler="RowDoubleClick"/>
</Style>
</DataGrid.RowStyle>
</DataGrid>
private void RowDoubleClick(object sender, RoutedEventArgs e)
{
var row = (DataGridRow)sender;
row.DetailsVisibility = row.DetailsVisibility == Visibility.Collapsed ?
Visibility.Visible : Visibility.Collapsed;
}
Комментарии:
1. Но еще один вопрос: теперь я хочу закрыть все остальные строки, потому что я хочу разрешить только одну строку с подробностями. Есть ли какой-либо способ повторить строки? Спасибо 😉
2. Это немного сложно, вам лучше всего было бы привязать видимость к какому-либо свойству ваших элементов, тогда у вас будет более легкий доступ, если вы хотите получить все строки, которые вам нужны, чтобы использовать
ItemContainerGenerator
я думаю.3. Вы бы поместили этот код для события в MainWindowViewModel или вы бы поместили его в код MainWindow.xmal.cs позади? Я собираюсь поместить это в viewmodel. и посмотреть, что произойдет