C# 更改父项时更新UserControl

C# 更改父项时更新UserControl,c#,wpf,C#,Wpf,处理以下情况的正确方法(MVVM)是什么?我们有一个窗口/用户控件,它承载很少的用户控件和网格。当我们选择网格项时,SelectedItem=“{Binding SelectedAccount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}”正在更新用户控件上的SelectedAccount属性 <TabItem Header="{x:Static p:Resources.Basic}"> <DockPanel>

处理以下情况的正确方法(MVVM)是什么?我们有一个窗口/用户控件,它承载很少的用户控件和网格。当我们选择网格项时,
SelectedItem=“{Binding SelectedAccount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}”
正在更新用户控件上的
SelectedAccount
属性

<TabItem Header="{x:Static p:Resources.Basic}">
    <DockPanel>
       <accounts:UCBasic x:Name="UCBasic" SelectedAccount="{Binding SelectedItem, ElementName=gridMain}"></accounts:UCBasic>
    </DockPanel>
</TabItem>
    <TabItem Header="{x:Static p:Resources.AdditionalData}">
    <DockPanel>
          <accounts:UCAdditionalData x:Name="UCAdditionalData" SelectedAccount="{Binding SelectedItem, ElementName=gridMain}"></accounts:UCAdditionalData >
    </DockPanel>
    ... more user controls ...
</TabItem>
基本上,我将如何通知此用户控件,
SelectedAccount
值已更改,并且它应该更新自身(它自己的文本框、网格等)?

1)您可以在ViewModel中使用INotifyPropertyChanged实现(如果将发送通知以更新视图中更改的ViewModel属性) 2) 如果两个用户控件都使用一个ViewModel,1选项将立即帮助您。
如果使用不同的ViewModels,则在更新第一个用户控件时,应在代码中更新secornd用户控件视图模型。

如果每个用户控件都有
帐户
属性,则它可以在自己的文本框、网格等中进行绑定,例如

<TextBox Text="{Binding Account.Name, RelativeSource={RelativeSource AncestorType=UserControl}}"/>

您是说您的
所选帐户不起作用吗?因为如果是这样,您应该能够绑定到
UserControl
中的
SelectedAccount
的属性。或者在属性更改的回调中执行某些操作。
<TextBox Text="{Binding Account.Name, RelativeSource={RelativeSource AncestorType=UserControl}}"/>