我创建了一个包含一些控件(按钮和复选框)的用户控件。
之后,我在 WPF Windows 中添加了对该 UserControl 的引用。
我想要做的是:当我单击 UserControl 中的按钮时,该按钮会触发一个操作并更改 Windows 中的某些内容(Textbox1.Text =“something”)。
我的问题是我无法从 UserControl 访问 Windows 内部的控件。
有什么帮助吗?
EDIT
:添加了代码示例
<s:SurfaceWindow x:Class="Project.Temp.MainSurface"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="http://schemas.microsoft.com/surface/2008"
xmlns:local="clr-namespace:Project"
Title="Project.Temp"
>
<Grid x:Name="Root" ... >
<Grid x:Name="Child" ... >
<local:MyUserControl x:Name="UserControlStart" ... />
</Grid>
...
</Grid>
有多种方法可以实现这种“沟通”...以下只是其中一些方法...还有更多方法:
1)定义一个命令...单击按钮时将引发该命令。
然后在您的窗口中,您将处理该命令,并将文本框更改为某个字符串。
如果您想提供一些数据/上下文,可以使用 CommandParameter。
2) 定义一个 RoutedEvent(冒泡事件),它会在树中冒泡,然后 Window 可以处理它。该事件将由用户控件中的按钮引发,并将包含您想要在窗口中设置的“文本”。
3)如果你的“东西”是一种“状态”指示器...那么你可以在你的 UserControl 上提供一个“状态”属性(或者另一个选项有一个包含状态数据的 ViewModel)。然后,您的 TextBox 可以绑定到 UserControl(或 ViewModel)上的该属性以获取“状态”(作为一个值,然后使用转换器将其“转换”为可显示的消息,或者作为直接字符串)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)