c# WPF userControl发送数据到mainWindow textBlock上的buttonClick

本文关键字:mainWindow textBlock 上的 buttonClick 数据 WPF userControl | 更新日期: 2023-09-27 17:50:52

我试图创建一个简单的屏幕上的键盘创建使用按钮(目前是一个用户控制),在这些按钮我有一个点击事件,当我点击/触摸一个按钮,我想要该按钮的值发送到文本块在我的主窗口

我不能/不明白如何使用户控件(键盘)看到文本块(在主窗口)添加我需要的值。

我见过使用命令绑定的解决方案和使用可视树遍历的解决方案,但它们都是访问用户控件的主窗口,而不是其他方式。

c# WPF userControl发送数据到mainWindow textBlock上的buttonClick

所有的例子都是相反的,因为这就是UserControl应该如何工作。

UserControl是一个打包的可重用功能。它不应该知道使用它的代码的任何信息。

相反,你应该在你的UserControl中暴露路由事件,比如当数字被选中时,并在你的主窗口订阅它们。

有很多方法可以达到你想要的。如果您的MainWindow.xamlUserControl,并且您希望对MainWindow.xaml.cs文件中的控件的更改做出反应,那么您可以将delegate添加到UserControl代码后面,并在MainWindow.xaml.cs文件中为其注册处理程序。实现新的delegate通常比实现RoutedEvent要简单一些,这是处理这种情况的另一种方法。

使用这样的delegate将使您能够有效地从后面的子UserControl代码传递信号到主视图,您可以以任何您想要的方式对其做出反应。而不是解释整个故事再次在这里,请看到我的答案从传递参数之间的视图模型和如何调用函数在主视图模型从其他视图模型?