想象一下:您有一个主-子窗口,由项目列表(主窗口)和一组控件组成,您可以在其中编辑当前选定的项目(子窗口)。子窗口有“应用”和“取消”按钮。
用户开始编辑值。然后他更改选择,然后按下“应用”按钮。
您的应用程序显示一条消息“将更改应用于当前项目?”,按钮为"is"、“否”和“取消”。
如果用户按下“取消”,则更改当前选择的尝试将失败。
“CurrentSelection”项是数据绑定(bind)的。
我想我可以在 CurrentSelection
的“二传手”部分处理这个问题。属性(property)。如果用户选择“取消”,我只需保留 CurrentSelection
项目原样,并触发 PropertyChanged
通知事件,告诉表单更新回旧的选定项目。控件忽略此通知事件。 (这是有道理的,控件说“我知道当前选择已更改。我只是更改了它!”)
任何想法如何解决这一问题?综上所述,控件尝试更改边界 SelectedItem
,我想告诉它“不,你现在不能更改这个选定的项目”。
最佳答案
并按照 Kent Boogaart 指出的那样做,请参阅此回复。
How to stop a WPF binding from ignoring the PropertyChanged event that it caused?
关于WPF:停止或反转列表框中的选择更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1437531/