【发布时间】:2010-12-14 14:05:25
【问题描述】:
我有两个要在窗口中显示的用户控件。第一个 UserControl 的属性“SelectedItem”的值应设置为第二个 UserControl 的“SelectedItem”属性。我该怎么做?
在我当前的代码中,在第一个 UserControl 的属性中设置的值不会触发第二个 UserControl 中的更新。我为各自的用户控件/窗口附加了模型。
以下是Window中的代码;
<MyControls:MyFirstUserControl x:Name="m_controlOne" />
<MyControls:MySecondUserControl x:Name="m_controlTwo" SelectedItem={Binding Path=SelectedItem, ElementName="m_controlOne" />
我也尝试在上面的 Binding 结构中添加UpdateSourceTrigger=PropertyChanged,但无济于事。
在 MyFirstUserControl 中,我实现了一个DependencyProperty,它链接到一个名为“SelectedItem”的属性,同样在 MySecondUserControl 中。我还尝试在两个 UserControls 中实现 INotifyPropertyChanged(模型也实现了它们)。
在MyFirstUserControl 的属性set { } 中,我尝试使用OnPropertyChanged("SelectedItem")、OnPropertyChanged(new DepedencyPropertyChangedEventArgs(...)) 和SetValue(SelectedItemProperty),均未能触发第二个用户控件的SelectedItem 属性更新。
我错过了什么?
【问题讨论】:
-
我想不出这不起作用的原因。也许更多代码可能有助于阐明问题?
-
正如@Groky 所说,查看 SelectedItem 属性的代码会很有帮助。
标签: wpf binding controls properties