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

标签 wpf data-binding listbox

想象一下:您有一个主-子窗口,由项目列表(主窗口)和一组控件组成,您可以在其中编辑当前选定的项目(子窗口)。子窗口有“应用”和“取消”按钮。

用户开始编辑值。然后他更改选择,然后按下“应用”按钮。

您的应用程序显示一条消息“将更改应用于当前项目?”,按钮为"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/

相关文章:

c# - 如何向数据库添加项目?

wpf - MVVM 框架 : Performance

c# - Update 更改DataGrid 到数据库?

javascript - 在 Knockoutjs 上操作 DOM 元素 "before-value-changed"

javascript - 推送到 dom-repeat 中使用的数据绑定(bind)数组( polymer )

c# - 如何在 C# 中的列表框中插入复选框?

.net - 有谁知道如何让 WPF MessageBox 看起来更好(比如 Windows Forms equivelant)?

wpf - Caliburn micro 和 tabcontrol

c# - UWP - 将 TextBox.Text 绑定(bind)到 Nullable<int>

c# - 如何打开列表框中显示的文件?