gpt4 book ai didi

c# - WPF DataGrid SelectionChanged 事件取消单元格焦点问题

转载 作者:行者123 更新时间:2023-11-30 12:33:55 25 4
gpt4 key购买 nike

我正在数据网格选择更改事件中执行检查。如果满足我的条件,则应执行代码并突出显示所选项目(或获得焦点),如果不满足条件,则控件应返回并先前选择的项目应保持选中状态。

这里发生的事情是,如果不满足条件,则所选项目不会更改(按预期工作)但焦点仍会转移到现在所选的单元格,因此单元格所选项目是前一个单元格,而在焦点是触发事件的单元格。

我已经尝试过 datagrid.dispatcher.invoke 方法,但它似乎不起作用。此外,我还尝试设置 datagrid.selectedindex=e.removeditem[0],这会导致控件再次进入选择更改事件,从而进入连续循环。

请提出一些建议。

编辑:

dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{
if (!IsDirty)
{
if (e.AddedItems.Count > 0)
{
SelectedProfile = e.AddedItems[0] as profile;
}
if (e.RemovedItems.Count > 0)
{
}
}
else
{
MessageBox.Show("Save the profile selected", MessageBoxButton.OK, MessageBoxImage.Warning);
return;
}
}

最佳答案

防止循环。

void OnSelectionChanged(Object sender, SelectionChangedEventArgs e)
{
// condition code
if (conditionFailed)
{
datagrid.SelectionChanged -= OnSelectionChanged;
datagrid.Selectedindex = e.Removeditem[0];
datagrid.SelectionChanged += OnSelectionChanged;
}
}

关于c# - WPF DataGrid SelectionChanged 事件取消单元格焦点问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8171093/

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