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

Is it possible to bind a property of another user control?

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

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

我在想这个:

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

谢谢。

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

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

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

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

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