【发布时间】: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