【问题标题】:WPF Event Passing Between two child usercontrol of a main usercontrolWPF事件在主用户控件的两个子用户控件之间传递
【发布时间】:2011-06-10 05:24:29
【问题描述】:

我正在使用 Visual Studio 2010。我在 wpf 中有两个自定义用户控件类。还有一个名为 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 实例的概念。我已经使用委托和事件完成了这项工作。但因为它们是主窗口的孩子。是否可以在 usertreeview 中创建一个动作并捕获它或在 usertoolbar 中编写处理程序或在 usertoolbar 中进行更改而不使用委托和事件绑定?

或者是否有可能 - 单击 usertreeview 并在 usertoolbar 中进行更改,因为它们都是主窗口的子窗口而不使用委托?

【问题讨论】:

    标签: wpf user-controls handler event-binding


    【解决方案1】:

    使用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,清除文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多