WPF事件传递在主用户控件的两个子用户控件之间传递

时间:2011-06-10 05:24:29

标签: wpf user-controls handler event-binding

我正在使用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的子节点而不使用委托?

1 个答案:

答案 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,清除文本。