【问题标题】:Combobox binding in dataform with MVVM not firing PropertyChanged数据表单中的组合框绑定与 MVVM 未触发 PropertyChanged
【发布时间】:2011-08-16 14:10:55
【问题描述】:

我的视图模型中有一个绑定到ObservableCollection<Model.Parameters> Parameters 对象的数据表单。在我的editTemplate 中,左列绑定到Parameters 对象中的属性。右列是一系列组合框。每个的绑定都是这样设置的:

<toolkit:DataField>
    <telerik:RadComboBox
    ItemsSource="{Binding DataSource.Accounts, Source={StaticResource DataContextProxy}}"   
    SelectedValue="{Binding HWIPInstall, Mode=TwoWay}"
    Width="150"
    Margin="0 0 20 0">
    </telerik:RadComboBox>
</toolkit:DataField>

如您所见,我将 ItemsSource 绑定到称为 Accounts 的 ObservableCollection,它只是在我的 VM 中加载时填充的 Accounts 列表。然后将 SelectedValue 绑定到(在这种情况下)我的参数对象的 HWIPInstall 属性。当我在我的 ReadOnlyTemplate(这是一系列文本框仅 [无组合] 直接绑定到我的参数对象)和我的 EditTemplate 之间切换时,组合框正确显示帐户列表。 SelectedValue 也设置正确。但是,当我更改组合框时,它似乎不会触发 INotify,因为我的数据表单上的“确定”按钮没有改变。但是,如果我更改文本框,“确定”按钮会亮起,并调用我的 SaveParameters 方法。

关于上述内容的注释。如果我在 SaveParameters 方法上设置断点,我可以看到我的 Parameters 对象已经更新了文本框的更改和组合框的更改,所以我知道我的 Parameters 对象在组合框更改时正在更新,但这些更改都不会触发 iNotify。

你的想法?

【问题讨论】:

    标签: silverlight data-binding mvvm


    【解决方案1】:

    哇哦。我在我的模型上使用了自动属性。我的 ViewModel 实现了 INotify,但我的 Model 没有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2011-06-13
      • 1970-01-01
      • 2015-12-17
      • 2013-03-28
      • 2018-06-12
      • 2015-09-15
      相关资源
      最近更新 更多