我试图将IsEditable属性设置为true绑定到组合框文本。我的viewmodel中有一个属性绑定到文本。
我想验证组合框文本中输入的文本,并限制用户输入的一些值。所以有些是允许的,有些则不允许,这些需要将组合框设置回其旧的价值。
我在视图模型中执行此操作,并尝试将我的视图模型显式中的text属性设置为旧值,或者只是忽略更改并提高属性已更改,但对于我的生活,它不会将文本刷新回旧值。
这是因为组合框是可编辑的,并且它具有文本插入符并且在组合框的文本中的某处聚焦。
基本上,当我在编辑过程中限制组合框中的某些输入时,我希望它刷新回原来的文本。任何人都有任何想法通过ViewModel将文本重置为旧值。提前谢谢!
答案 0 :(得分:1)
感谢您的回复。但我永远无法让它工作,我制作了自己的UserControl,它包含一个覆盖在组合框上的文本框,并操纵这两个控件以满足我的需要。解决一个简单问题还有很长的路要走,但最终还是有效。
答案 1 :(得分:0)
您绑定的viewmodel属性是否作为DependencyProperty创建?这可能是您面临的问题Two-way binding in WPF
如果您不想创建Dependency属性,则需要更改INotifyProperty并手动强制更改Property更改事件。
答案 2 :(得分:0)
我认为这是因为如果更改setter中属性的值,WPF中的'bug'不会刷新UI。您可以通过实施强制UI按this arcticle刷新的IdentityConverter
来解决此问题。