绑定到ViewModel和CodeBehind可重用的UserControl

时间:2018-05-04 22:28:11

标签: c# wpf mvvm user-controls prism

我创建了 usercontrolX ,我在 PageX 视图中多次使用它。 它包含一个按钮和一个文本框,我想将文本框绑定到 PageXModelView 中的属性,该按钮应该在我的 usercontrolXModelView 中执行某些操作。

问题是,当我将 usercontrolX 添加到视图时,只有将textboxt绑定到代码后面的 usercontrolX而不是将其绑定到PageX属性时才能将其绑定到PageX属性 usercontrolXModelView 和按钮只有在我将其绑定到 usercontrolXModelView 中的属性时才有效,那么有没有一个解决方案将 usercontrolX 绑定到 usercontrolXModelView 和代码后面的 usercontrolX

  • 这是项目:

观看次数:UserControlX,Page,MainWindow

ModelViews:UserControlXMV,PageMV,MainWindowMV

< UserControl x:Class="APPia.Views.Usercontrolx" mc:Ignorable="d"  Name="Usercontrolx">
    < Button Name="B1" Content="Button" Command="{Binding UpdateCommandx, Mode=OneWay}"/>
    < Label Name="L21" Content="{Binding Path=propX,ElementName=Usercontrolx}"/>
</UserControl>


<UserControl x:Name="PageX"">
<Grid>
<TextBox Text="{Binding persowxn.Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<UserControlX x:Name="Contx1" propX="{Binding persowxn.Name}" />
<UserControlX x:Name="Contx2" propX="{Binding persowxn.Surname}" />
</Grid>
</UserControl>

1 个答案:

答案 0 :(得分:1)

在用户控件的代码隐藏中,添加依赖项属性。然后将用户控件的标签内容绑定到该依赖项属性。然后将用户控件的依赖项属性绑定到页面的视图模型属性。

用户控件内的按钮相同...