我想创建一个简单的屏幕键盘创建使用按钮(当前是一个用户控制),在这些按钮我点击事件,当我点击/触摸我想要一个按钮的值发送到我的主窗口中的文本块。C#WPF userControl发送数据到mainWindow textBlock的buttonClick
我不能/不明白如何让用户控制(键盘)看到文本块(在主窗口)在我需要的增值。
我已经看到了使用命令绑定和使用的可视化树遍历解决方案,解决方案,但所有的人都访问用户的控制,而不是周围的其他方式的主窗口。
我想创建一个简单的屏幕键盘创建使用按钮(当前是一个用户控制),在这些按钮我点击事件,当我点击/触摸我想要一个按钮的值发送到我的主窗口中的文本块。C#WPF userControl发送数据到mainWindow textBlock的buttonClick
我不能/不明白如何让用户控制(键盘)看到文本块(在主窗口)在我需要的增值。
我已经看到了使用命令绑定和使用的可视化树遍历解决方案,解决方案,但所有的人都访问用户的控制,而不是周围的其他方式的主窗口。
所有的例子是周围的其他方式,因为这是一个UserControl
是如何工作的。
甲UserControl
是可重复使用的功能性的包装件。它不应该知道使用它的代码。
相反,你应该揭露路由事件在UserControl
的东西像一个被选择号码时,并订阅它们在你的主窗口。
有很多方法可以实现你想要什么。如果您的MainWindow.xaml
有UserControl
,并且您想对MainWindow.xaml.cs
文件中控件的更改作出反应,那么您可以将delegate
添加到UserControl
后面的代码中,并在MainWindow.xaml.cs
文件中为其注册处理程序。实施新的delegate
通常比实施RoutedEvent
简单一些,这是您可以处理这种情况的另一种方式。
使用这样的delegate
可以使您有效地将信号传递到子代码UserControl
后面的主视图,您可以用任何您想要的方式对其进行反应。不要在这里再次解释整个故事,请参阅Stack Overflow上Passing parameters between viewmodels和How to call functions in a main view model from other view models?的帖子,了解有关如何实现此目的的完整详细信息。
那么,一个办法是暴露在控制的属性,并绑定你的文本块中的主窗口,以该财产。在点击按钮时更改属性的值。虽然可能有更好的解决方案。 – rmagon