[英]C# WPF userControl to send data to mainWindow textBlock on buttonClick
我试图创建一个使用按钮(当前为用户控件)创建的简单屏幕小键盘,在这些按钮上我有一个点击事件,当我单击/触摸一个按钮时,我希望将该按钮的值发送到我的主窗口。
我无法/不理解如何使用户控件(键盘)看到文本块(在主窗口中)以添加所需的值。
我已经看到了使用命令绑定的解决方案和使用可视化树遍历的解决方案,但是它们都是访问用户控件的主窗口,而不是相反。
所有这些示例都是相反的,因为这应该是UserControl
工作方式。
UserControl
是打包的可重用功能。 它应该对使用它的代码一无所知。
相反,您应该在UserControl
公开路由事件,以选择诸如“何时”号之类的内容,并在主窗口中对其进行订阅。
有很多方法可以实现您想要的。 如果您的MainWindow.xaml
具有UserControl
并且您想对MainWindow.xaml.cs
文件中控件的更改做出反应,则可以在UserControl
代码后面添加一个delegate
,并在MainWindow.xaml.cs
为其注册一个处理程序。 MainWindow.xaml.cs
文件。 实现新的delegate
通常比实现RoutedEvent
更为简单,这是您可以处理这种情况的另一种方法。
使用这样的delegate
将使您能够有效地从后面的子UserControl
代码向主视图传递信号,您可以以任何想要的方式对其进行响应。 除了在这里再次解释整个故事之外,请从“ 在视图模型之间传递参数”和“ 如何从其他视图模型调用主视图模型中的函数”中查看我的答案。 在Stack Overflow上的此处发布有关如何实现此目标的完整详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.