我正在使用Visual Studio 2010.我在wpf中有两个自定义usercontrol类。还有一个名为MainWindow.xaml的Main Usercontrol类。我添加了两个名为ListTreeviewContentPane.xaml和ToolBarMenuContentPane.xaml的不同类。在MainWindow.xaml中,我使用这种类型的代码添加了它们 -
<local:ListTreeViewContentPane x:Name="usertreeview"></local:ListTreeViewContentPane>
<local:ToolBarMenuContentPane x:Name="usertoolbar"></local:ToolBarMenuContentPane>
我想点击usertreeview,然后运行usertoolbar中的代码。但问题是usertreeview没有usertoolbar实例的概念。我使用委托和事件完成了这个。但因为他们是Mainwindow的孩子。是否可以在usertreeview中创建一个动作并捕获它或在usertoolbar中编写处理程序或在usertoolbar中进行更改而不使用委托和事件绑定?
还是可以 - 点击usertreeview并在usertoolbar中进行更改,因为他们都是mainwindow的子节点而不使用委托?
答案 0 :(得分:0)
使用来自Blend SDK的交互,您可以触发其他控件中的事件,并调用听起来适合您的问题的方法,例如。
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
<TextBox>
<i:Interaction.Triggers>
<i:EventTrigger SourceName="buton" EventName="Click">
<ei:CallMethodAction MethodName="Clear" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
<Button Name="buton" Content="Clear Text" />
如果单击Button,则会触发TextBox中的触发器并调用TextBox上的方法Clear
,清除文本。