我正在使用 MVVM 开发 WPF 应用程序。主窗口上有一个客户姓名组合框。选择客户后,我想显示其地址。
所以我创建了一个地址用户控件,并在控件后面的代码中添加了一个 DP:
public static DependencyProperty CustomerIdProperty =
DependencyProperty.Register("CustomerId", typeof(int), typeof(AddressView));
public int CustomerId
{
get { return (int)GetValue(CustomerIdProperty); }
set { SetValue(CustomerIdProperty, value); }
}
接下来,在主窗口中,我将组合绑定到用户控件的 CustomerId DP:
<vw:AddressView Grid.Row="1"
Grid.Column="0"
x:Name="AddressList"
CustomerId="{Binding ElementName=CustomersList, Path=SelectedCustomer.Id, Mode=TwoWay}"/>
我现在有一个问题和一个问题:
问题:当我运行它并选择一个客户时,DP 上的设置器永远不会触发。主窗口中的 SelectedCustomer 属性会触发,但不会触发用户控件中的 DP。
问题:控件的ViewModel如何知道DP中的CustomerId?
我在这里创建了一个小示例应用程序来演示我在做什么:
我将不胜感激这方面的任何帮助。
谢谢