是否可以绑定另一个用户控件的属性?

时间:2020-07-04 18:38:03

标签: c# wpf wpf-core

我有两个用户控件。第二个有一个数据网格。我希望在第二个用户控件的数据网格中的选定项发生更改时通知第一个用户控件。

是否可以绑定不同用户控件的属性?

我正在考虑:

<local:MyFirstUserControl MyPorperty={Binding ElementName MySecondUserControl, path=DataGrid.Selecteditem}/>
<local:MyFirstUserControl Name="MySecondUserControl"/>

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以在使用它们的页面中控制两个用户控件之间的交互和数据流。

因此,当所选择的项目在网格变化,引发事件。父页面可以适当地处理它,在这种情况下,可以通过在第二个用户控件上调用public方法。

答案 1 :(得分:0)

您可以使用Messenger在视图模型之间发送消息(例如DevExpress.Mvvm或MvvmLight)

https://docs.devexpress.com/WPF/17474/mvvm-framework/messenger

您可以定义和订阅自定义事件。 在您的情况下,第一个用户控件将订阅某个事件(比方说事件X) 第二个用户控件将发布事件X和相应的对象(在您的情况下为所选项目)。每次更改所选项目时,第一个用户控件都会得到通知,获取数据并进行处理。