【问题标题】:Databinding to object properties breaks when setting null to object in Silverlight在 Silverlight 中将 null 设置为对象时,与对象属性的数据绑定中断
【发布时间】:2011-02-15 18:33:10
【问题描述】:

伪代码示例:

<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>

我将&lt;MyObject&gt; 类型的对象传递给此用户控件,对其进行修改然后保存。完成此操作后,我将使用CurrentObject = null 重置状态。在第二遍中,这些组合框没有选定的值,尽管有实际数据。我该如何解决?

【问题讨论】:

    标签: silverlight data-binding


    【解决方案1】:

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

    【讨论】:

    • 是的,我知道,但问题是对象有大量的属性,我根本不想一一清除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    相关资源
    最近更新 更多