绑定到父控件的CollectionViewSource

本文关键字:CollectionViewSource 控件 绑定 | 更新日期: 2023-09-27 18:02:07

我有一个由父用户控件(Counterparties_MainWindow)与嵌入的用户控件(Counterparties_UserInputs和Counterparties_SystemDetails)组成的复合视图:

<UserControl x:Class="Counterparties_MainWindow">
<av:UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Counterparties_Dictionary.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <CollectionViewSource x:Key="counterpartiesDataView" Source="{Binding Path=CounterpartiesData}" />
    </ResourceDictionary>
</av:UserControl.Resources>
<DockPanel>
   <DockPanel>
       <GUI:Counterparties_UserInputs x:Name="UserInputs"/>
       <GUI:Counterparties_SystemDetails x:Name="SystDetails"/>
   </DockPanel>
</DockPanel>

"Counterparties_SystemDetails"包含一个网格,该网格显示了一些已经从CounterpartiesData(对象列表)中定义的字段。"Counterparties_UserInputs"显示了CounterpartiesData中尚未定义的字段列表,这些字段应该由用户定义。

我曾经在Counterparties_SystemDetails用户控件xaml中拥有CollectionViewSource,并直接将网格绑定到它,它正在工作(即显示我的CounterpartiesData详细信息):

<DataGrid Name="CounterpartiesGrid" ItemsSource="{Binding Source={StaticResource counterpartiesDataView}}"
SelectedItem="{Binding Path=SelectedCounterparty, Mode=OneWayToSource}"  Style="{StaticResource DataGridStyle}">

然而,现在我已经将CollectionViewSource移动到父窗口,以便在两个子控件中共享相同的CounterpartiesData对象,我找不到任何方法将其绑定回我的网格。你能告诉我怎么做吗?

最后但并非最不重要的是,我想在用户控件Counterparties_UserInputs的文本框字段中显示当前选择的交易对手名称。你知道我怎么方便地访问它吗?

谢谢!

绑定到父控件的CollectionViewSource

您应该能够将counterpartiesDataView作为DataContext传递给UserControl

<DockPanel>
   <DockPanel>
       <GUI:Counterparties_UserInputs x:Name="UserInputs" DataContext="{Binding Source={StaticResource counterpartiesDataView}}" />

并设置你的UserControl的ItemSource

<DataGrid Name="CounterpartiesGrid" ItemsSource="{Binding}" />

然而,如果你的UserControl已经使用它的DataContext为其他的东西,你可以使用FindAncestor找到父和绑定到它的属性之一。

<DataGrid Name="CounterpartiesGrid" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=CounterpartiesData}">
相关文章:
  • 没有找到相关文章