在Silverlight中将null设置为object时,数据绑定到对象属性会中断

时间:2011-02-15 18:33:11

标签: silverlight data-binding

伪码样本:

<UserControl>
   <ComboBox SelectedValuePath="Id" SelectedValue="{Binding CurrentObject.Id, Mode=TwoWay}" ItemSource="{Binding Groups}"/>
   <ComboBox SelectedValuePath="Name" SelectedValue="{Binding CurrentObject.Status, Mode=TwoWay}" ItemSource="{Binding Statuses}"/>
</UserControl>

我将<MyObject>类型的对象传递给此用户控件,修改它然后保存。执行此操作后,我正在使用CurrentObject = null重置状态。在第二次通过时,虽然有实际数据,但这些组合框没有选定的值。我该如何解决?

1 个答案:

答案 0 :(得分:0)

您始终必须将数据绑定的数据源设置为某个对象,否则数据绑定将不起作用。绑定到null将永远不会起作用 不要将currentobject设置为null,但可以将CurrentObject.Id设置为0,并在知道后立即将其重置为最终值(例如,在第二次传递时)。当您的对象实现INotifyPropertyChanged时,将更新用户界面上的值。