首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGrid RowDetails在RowDoubleClick上的可见性

DataGrid RowDetails在RowDoubleClick上的可见性
EN

Stack Overflow用户
提问于 2019-10-23 09:07:33
回答 1查看 82关注 0票数 0

在我的Datagrid xaml中,我将rowdetailsvisibilitymode设置为折叠。

然后,我在RowDoubleClick上创建了一个事件,用于在双击一行时折叠和展开该行的详细信息:

代码语言:javascript
复制
private void DgRowDoubleClick(object sender, RoutedEventArgs e)
{  
    var row = (DataGridRow)sender;
    row.DetailsVisibility = row.DetailsVisibility == Visibility.Collapsed ?
        Visibility.Visible : Visibility.Collapsed;
}

现在我想在选择新行时折叠这些详细信息...我想要在选中时模仿可见,但要使用双击。

我的想法是:如果可能,当选择新行时,行的详细信息会折叠,但新行在双击之前不会展开。第二次双击也应该能够折叠当前选定行的详细信息。

EN

回答 1

Stack Overflow用户

发布于 2019-10-23 12:40:37

处理DataGrid RowSelected事件。在此事件中,隐藏前一行。现在,为了访问前一行,最简单的方法是在双击事件中保持引用。如下所示:

代码语言:javascript
复制
    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绑定您的详细信息可见性来以更优雅的方式处理它,然而,该解决方案只是在您的代码上扩展。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58514110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档