在WPF DataGrid中双击显示行详细信息

13

目前我的DataGrid在单击行时显示了行详细信息。但我希望只有双击行时才显示行详细信息。

有什么解决这个问题的想法吗?

谢谢!

1个回答

27
<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;
}

但是另一个问题:现在我想关闭所有其他行,因为我只想允许一行显示细节。有没有办法迭代这些行?谢谢 ;) - rakete
这有点困难,你最好将可见性绑定到项目的某个属性上,然后就可以更容易地访问了。如果你想获取所有行,你需要使用 ItemContainerGenerator - H.B.
你会把那个事件的代码放在MainWindowViewModel中还是放在MainWindow.xmal.cs的代码后面?我打算把它放到viewmodel中,看看会发生什么。 - SoftwareSavant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接