WPF:如何停止或反转列表框中的选择更改

6
想象一下:您有一个由项目列表(主窗口)和一组控件(可编辑当前选定项目的子窗口)组成的主-子窗口。子窗口有“应用”和“取消”按钮。 用户开始编辑值。然后更改选择,再按“应用”按钮。 您的应用程序显示消息“将更改应用于当前项目?”,其中按钮为“Yes”、“No”和“Cancel”。 如果用户按“Cancel”,则更改当前选择的尝试应失败。
“CurrentSelection”项是数据绑定的。
我认为可以在“CurrentSelection”属性的“setter”部分中处理此问题。如果用户选择“Cancel”,那么我只需保留“CurrentSelection”项,并触发“PropertyChanged”通知事件告诉表单更新回旧的选定项目。但是,控件忽略了此通知事件。(这是有道理的,控件正在说:“我知道当前选择已更改。我刚刚更改了它!”) 有什么解决方法吗?总之,控件尝试更改绑定的SelectedItem,而我想告诉它“不,你现在不能更改此选定项目”。
3个回答

3

1

只是一个未经测试的想法:尝试在单独的消息中触发属性更改事件。列表可能有一个锁存器,在更改属性值时忽略任何通知。如果您分派包含通知的单独消息,则锁存器应该被重置,并且它应该处理它。


1

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