Silverlight组合框不显示绑定项目`

时间:2011-02-17 15:38:15

标签: c# silverlight data-binding

我有ComboBox ItemSource绑定到字符串列表(理想情况下我会使用枚举),这是使用MVVM模式完成的。

现在我想将一个对象绑定到ComboBox,它被称为SelectedUser,我想绑定它的属性:UserType,这是一个字符串。

所以我有这个:

<ComboBox ItemsSource="{Binding Path=Usertypes}"  SelectedValue="{Binding Mode=TwoWay, Path=SelectedUser.UserType}" />

它可以工作,如果我玩它,它会改变所选用户的值,但问题是,除非我选择一个用户,否则它不会在ComboBox中显示任何内容,然后更改{ {1}}选择,然后它可以工作,但仅适用于该用户。

我尝试使用ComboBoxDisplayMemberPathSelectedValuePath, 当我添加SelectedItem没有显示任何内容时(仍然可以选择,但它们是隐形的或其他东西)。

那我该怎么办?这是一个错误吗? 我必须提到我有另一个ComboBox有一个整数列表,它运行正常。

更新

我被告知我遇到了这个问题,因为我正在与comboBox中的字符串进行比较的字符串实际上并不相同。

我的字符串来自实体框架,通过Ria Services。 (User.UserType) 当它将它与ComboBox ItemSource中的字符串列表进行比较时,由于某些奇怪的原因,它们并不相等。

我也听说过,我可能必须覆盖Equal方法进行检查。 但我不知道在哪里以及如何这样做。

1 个答案:

答案 0 :(得分:0)

如果SelectedUser发生变化,是否会收到通知?我可以想象这可能是问题;如果没有此类通知,ComboBox将不会重新加载SelectedValue如果选择了其他用户,则只有在您自己进行更改时才会更新绑定。

如果不是这样,您还需要考虑除非当前值与源列表中的某个值完全匹配,否则不会显示任何选定的值。