【发布时间】:2011-02-17 15:38:14
【问题描述】:
我有一个ComboBox,它的ItemSource 绑定到一个字符串列表(理想情况下我会使用一个枚举),这是使用 MVVM 模式完成的。
现在我想将一个对象绑定到ComboBox,它叫做SelectedUser,我想绑定它的属性:UserType,它是一个字符串。
所以我得到了这个:
<ComboBox ItemsSource="{Binding Path=Usertypes}" SelectedValue="{Binding Mode=TwoWay, Path=SelectedUser.UserType}" />
它可以工作,如果我玩它,它确实会更改所选用户的值,但问题是,除非我选择一个用户,否则它不会在 ComboBox 中显示任何内容,然后更改 ComboBox选择,然后它可以工作,但仅适用于该用户。
我尝试过使用DisplayMemberPath、SelectedValuePath 和SelectedItem,
当我添加这些时,ComboBox 没有显示任何内容(仍有选项可供选择,但它们是不可见的)。
那我该怎么办?这是一个错误吗?
我必须提到我有另一个 ComboBox 有一个整数列表,它工作正常。
更新:
我被告知我遇到了这个问题,因为我正在比较的字符串与组合框中的字符串实际上并不相同。
我的字符串通过 Ria 服务来自实体框架。 (用户.用户类型) 并且当它与 ComboBox ItemSource 中的字符串列表进行比较时,出于某种奇怪的原因,它们并不相等。
我还听说,我可能必须为该检查重写 Equal 方法。 但我不确定在哪里以及如何这样做。
【问题讨论】:
标签: c# silverlight data-binding