Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGrid行详细信息行的可见性双击_C#_Wpf_Datagrid_Visibility_Rowdetails - Fatal编程技术网

C# DataGrid行详细信息行的可见性双击

C# DataGrid行详细信息行的可见性双击,c#,wpf,datagrid,visibility,rowdetails,C#,Wpf,Datagrid,Visibility,Rowdetails,在我的Datagrid xaml中,我将rowdetailsvisibilitymode设置为collapsed 然后我在行上创建了一个事件DoubleClick可在双击行时折叠并展开该行的详细信息: private void DgRowDoubleClick(object sender, RoutedEventArgs e) { var row = (DataGridRow)sender; row.DetailsVisibility = row.DetailsVisibil

在我的Datagrid xaml中,我将rowdetailsvisibilitymode设置为collapsed

然后我在行上创建了一个事件DoubleClick可在双击行时折叠并展开该行的详细信息:

private void DgRowDoubleClick(object sender, RoutedEventArgs e)
{  
    var row = (DataGridRow)sender;
    row.DetailsVisibility = row.DetailsVisibility == Visibility.Collapsed ?
        Visibility.Visible : Visibility.Collapsed;
}
现在我想在选择新行时折叠这些细节。。。我想在选择时模仿VisibleWhen,但使用双击


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

处理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绑定您的细节可见性来以更优雅的方式处理它,但是,解决方案只是在您的代码上进行了扩展