Silverlight数据绑定选择?

Silverlight数据绑定选择?,silverlight,data-binding,Silverlight,Data Binding,有人能解释silverlight/wpf数据绑定如何实际确定集合中哪个项是设置为selectedItem的正确项,如下面的代码段所示吗 <ComboBox SelectedItem="{Binding Mode=TwoWay, Path=Province}" ItemsSource="{StaticResource ProvinceCollection}" /> 其中ProvinceCollection只是一个静态字符串数组 在本例中,项是字符串,因此值

有人能解释silverlight/wpf数据绑定如何实际确定集合中哪个项是设置为selectedItem的正确项,如下面的代码段所示吗

<ComboBox SelectedItem="{Binding Mode=TwoWay, Path=Province}" 
           ItemsSource="{StaticResource ProvinceCollection}" />

其中ProvinceCollection只是一个静态字符串数组

在本例中,项是字符串,因此值类型足够简单,但当集合包含更复杂的内容(如运行时加载的对象实例)时,它如何知道将什么设置为选定项。(Datacontext).Province的对象引用和ProvinceCollection中的项不会相同,即使我认为它们应该相同


我正试图这样做,让数据绑定从当前datacontext的项不在集合中的集合中选择一个项(即没有具有相同对象引用的项)

我自己也遇到过这个讨厌的问题,在Silverlight 2中,不幸的是它使用了object.ReferenceEquals(签入反射镜),所以它实际上必须是同一个对象。这真让人恼火。恐怕你对此无能为力:(

这在Silverlight 3(至少是Beta版)中已经修复,现在它使用Equals,因此您可以使用覆盖Equals方法的技巧