RowDoubleClick 上的 DataGrid RowDetails 可见性
Posted
技术标签:
【中文标题】RowDoubleClick 上的 DataGrid RowDetails 可见性【英文标题】:DataGrid RowDetails Visibility on RowDoubleClick 【发布时间】:2020-02-19 04:26:09 【问题描述】:在我的 Datagrid xaml 中,我将 rowdetailsvisibilitymode 设置为折叠。
然后我在 RowDoubleClick 上创建了一个事件,以在双击该行时折叠和展开该行的详细信息:
private void DgRowDoubleClick(object sender, RoutedEventArgs e)
var row = (DataGridRow)sender;
row.DetailsVisibility = row.DetailsVisibility == Visibility.Collapsed ?
Visibility.Visible : Visibility.Collapsed;
现在我想在选择新行时折叠这些详细信息...我想在选择时模仿可见,但使用双击。
我的想法是:如果可能的话;选择新行时,行的详细信息会折叠,但新行在双击之前不会展开。第二次双击也应该能够折叠当前选定行的详细信息。
【问题讨论】:
【参考方案1】:处理 DataGrid RowSelected 事件。在此事件中隐藏上一行。 现在为了访问前一行,简单的方法是在双击事件中保留引用。像这样的:
DataGridRow visibleDetailRow = null;
private void Row_DoubleClick(object sender, RoutedEventArgs e)
visibleDetailRow = (DataGridRow)sender;
visibleDetailRow.DetailsVisibility = visibleDetailRow.DetailsVisibility == Visibility.Collapsed ?
Visibility.Visible : Visibility.Collapsed;
private void DataGridRow_Selected(object sender, RoutedEventArgs e)
if(visibleDetailRow != null)
visibleDetailRow.DetailsVisibility = Visibility.Collapsed;
我不确定您是否在代码中使用 MVVM,也许可以通过使用 MVVM 绑定您的详细信息可见性以更优雅的方式处理它,但是,该解决方案只是在您的代码上扩展。
【讨论】:
以上是关于RowDoubleClick 上的 DataGrid RowDetails 可见性的主要内容,如果未能解决你的问题,请参考以下文章