在我的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;
}现在我想在选择新行时折叠这些详细信息...我想要在选中时模仿可见,但要使用双击。
我的想法是:如果可能,当选择新行时,行的详细信息会折叠,但新行在双击之前不会展开。第二次双击也应该能够折叠当前选定行的详细信息。
发布于 2019-10-23 12:40:37
处理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绑定您的详细信息可见性来以更优雅的方式处理它,然而,该解决方案只是在您的代码上扩展。
https://stackoverflow.com/questions/58514110
复制相似问题