【发布时间】:2011-06-20 16:34:07
【问题描述】:
我正在尝试使用 silverlight 和 MVVM 将选定值设置为预加载的组合框。
我在选择值之前加载这些组合框项。
例如,我有一个用于选择国家/地区的组合框。我的第一步是加载一个绑定到组合框源的列表。这是完美的加载。
在此之后,我有一个“SelectedCountry”对象以双向绑定方式绑定到组合框的 selectedItem。
当我选择任何组合框值并且我的 SelectedCountry 对象被正确选择时,这是完美的。
当我尝试在我的 ViewModel 中分配选定的值时,问题就出现了。这样,组合框选定项不会更新。
我想这是因为,事实上,它们不是同一个对象(它们具有相同的值但它们是不同的引用)。
如果我重新实现 equals 方法,这应该可行吗?或者我应该通过搜索列表找到相同的对象?这将非常容易,因为如果这两个国家具有相同的 id,它们将是相同的......但我可以有更复杂的对象,我认为 equals 方法会更好。
提前致谢!!
编辑以添加一些代码示例:
<ComboBox Grid.Column="7" Margin="6,0" Name="cBTipoPoliza" VerticalAlignment="Center" TabIndex="4" ItemsSource="{Binding TiposPolizas, Mode=OneWay}" SelectedItem="{Binding TipoPoliza, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding nombre_tipo}" />
</DataTemplate>
</ComboBox.ItemTemplate>
【问题讨论】:
标签: silverlight mvvm