【发布时间】:2012-09-12 00:25:05
【问题描述】:
我有一个用户控件,其中有一个填充了成员的 DataGrid。 DataGrid.ItemsSource 绑定到模型上的 ObservableCollection。 DataGrid.SelectedItem 绑定到模型上的 SelectedMember 字段。 SelectedMember._set 调用 NotifyPropertyChanged 和事件调用 SetValue() 为暴露的 DependencyProperty。
此用户控件位于页面上。该页面也有一个视图模型。我正在尝试将 UserControl.CurrentMember 绑定到 viewmodel.SelectedMember 但它没有改变。我可以将 CurrentMember.MemberName 绑定到一个文本框,并且该框填充成员名称,因此看起来 UserControl 正确地公开了 DependencyProperty。但如果我绑定到模型,它不会更新。
我找不到任何交叉绑定。绑定到 TextBox 工作正常。页面模型上的字段是新的,因此没有任何绑定。
可能是什么问题?页面模型上的字段是否需要是 DependencyProperty?如果是这种情况,编译器会给我一个错误。
我会尝试获取代码示例,但它是如此根深蒂固,我不能只发布几行代码。
汤姆·P.
【问题讨论】:
-
您是否缺少双向绑定?默认情况下,文本框文本是双向的。
-
我已经尝试过 TwoWay、OneWay、OneWayToSource... 唯一发生的事情是我得到了 StackOverflow 异常。我已将 TwoWayByDefault 添加到 DependencyProperty。这些都没有帮助。
标签: wpf binding user-controls dependency-properties