MVVM绑定从一个用户控件到另一个用户控件的所选项

时间:2014-05-05 08:01:04

标签: c# wpf xaml mvvm user-controls

我有两个用户控件: - 第一个包含树视图 - 第二个包含一些字段。

我想使用usercontrol1中选定的treeviewitem-name更新usercontrol2中的文本框。

这是我的mainWindow.xaml的一部分...

<Grid> ...
    <View:UserControl1 Name="mycontrol1" .../>
    <View:UserControl2 Name="mycontrol2" DataContext="{Binding ElementName=mycontrol1.CategoryTreeView, Path=SelectedItem}"/>
</Grid>

这是我的usercontrol1的一部分(&#34;类别&#34;是类别对象的列表):

<TreeView Name="CategoryTreeView" x:FieldModifier="public" ItemsSource="{Binding Categories}">
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Path=Categories}">
            <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" />
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

这是我的usercontrol2的一部分:

<Grid>
   <TextBox Text="{Binding Name}"/>
</Grid>

我找到了一些示例,其中所有控件(treeview,textbox,...)都在一个xaml文件中,但如果它们在两个用户控件中则不会。

也许有人可以在这帮助我?

1 个答案:

答案 0 :(得分:0)

您可以对视图(UserControls)使用相同的Viewmodel,也可以使用event aggregation

两种方式都运作良好