gpt4 book ai didi

WPF Datagrid 双击 RowDetailsTemplate 也会触发父行上的双击事件

转载 作者:行者123 更新时间:2023-12-04 22:19:26 30 4
gpt4 key购买 nike

我有一个显示数据的 WPF 数据网格。对于 DataGrid 中显示的每个项目,可以展开该项目以显示使用 RowDetailsTemplate 显示的详细数据。 DataGrid Row 和 RowDetailsTemplate 都处理双击事件。

问题是双击 RowDetailsTemplate 时,双击事件被正确触发,但父行的双击事件也被触发。这是不受欢迎的行为。

有谁知道如何解决这个问题,以便双击 RowDetailTemplate 只触发 RowDetailsTemplate 双击事件而不触发它的父 Row 双击事件?

最佳答案

我遇到了这个并观察到两个事件,因此将 e.Handled 设置为 true 没有帮助。

我找不到比保留 bool “锁定”变量更好的解决方案了:

private bool lockDoubleClick;

private void dgParent_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (lockDoubleClick) return;
// parent was double-clicked; do something
}

private void dgChild_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
lockDoubleClick = true;
// child was double-clicked; do something
Dispatcher.BeginInvoke(new Action(() => lockDoubleClick = false));
}

关于WPF Datagrid 双击 RowDetailsTemplate 也会触发父行上的双击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5953075/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com