![]() |
1
2
我也遇到了同样的问题,唯一的解决方法就是在ViewModel中创建两个属性。一个作为选定值(value),但不绑定到组合框,另一个用于绑定(SelectedItem),绑定到SelectedItem。在SelectedItem getter中,我返回Values.FirstOrDefault(x=>x、 Value==Value)在setter中,我按Value.Value设置值。最后,当OnValueChanged属性中的值发生更改时,我通知视图SelectedItem的更改(NotifyPropertyChanged(“SelectedItem”))。。。 |
![]() |
2
2
我认为问题与绑定到SelectedValue的对象有关,而绑定到ItemsSource的对象本质上是同一数据的不同实例,恰好是没有重写Equals或==运算符之类的类的实例。从我现在经历的几次来看,由于SelectedValue或者在某些情况下SelectedItem在技术上并不等于绑定项源中的任何对象,因此它被忽略,并且您将在UI中得到一个空白值。 这种特殊情况下的问题可能是我在关闭窗体时重用了所选的值,但是每次打开对话框时都可能重新生成锁定列表。 因此,当我在遇到的任何代码中看到这个症状时,首先要检查的是绑定的项类型,并确保SelectedValue或SelectedItem与ItemsSource中的一个项是ReferenceEquals或Equals。现在,我将把这一点再次归咎于WPF中对合理绑定错误反馈的糟糕支持。 |
![]() |
3
0
我和这个问题斗争了大约一个星期,仍然不知道是什么导致了combobox如此奇怪的行为。 @Jeronimo the Black case),经典组合框控件无法识别SelectedItem仍在基础集合中。然后control internals设置SelectedItem=NULL,UI显示为空。问题是这样的行为有50%的可复制性,在切换到另一个对象或模型后,ItemsSource和SelectedItem之间的互连可以自我恢复。 在我的例子中,甚至ItemsSource过滤也会导致这些错误。请注意,ParentRegionId属性具有可为null的类型。
例2 50%空白(附加过滤)
我支持 @jpierson 解决这个问题的最简单方法就是忘记SelectedItem属性:
使用“SelectedValue”+“SelectedValuePath”代替:
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |
![]() |
Barta · WPF MVVM不更新视图 7 月前 |
![]() |
Denis Ivanov · WPF控件在属性更改时不会更新 7 月前 |
![]() |
codymanix · WPF:TextBlock周围可见小边框? 8 月前 |
![]() |
Nostromo · 来自背景对象的工具提示 11 月前 |
![]() |
Nuvolari · 从可观测集合添加/删除时出现对象处理异常 1 年前 |
![]() |
CCarter · 只能在设计器中DependencyObject的DependencyProperty上设置显示“Binding”的WPF ICommand DependencyProperties[重复] 1 年前 |
![]() |
Thern · 在UI线程(WPF)上的void方法中调用异步函数 1 年前 |