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