Передача событий WPF между двумя дочерними usercontrol основного usercontrol - PullRequest
1 голос
/ 10 июня 2011

Я использую Visual Studio 2010. У меня есть два пользовательских класса usercontrol в wpf. И есть класс Main Usercontrol с именем MainWindow.xaml. Я добавил два разных класса с именами 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 без использования делегата и привязки к событию?

или это возможно - щелкните в пользовательском дереве и внесите изменения в usertoolbar, поскольку они оба являются дочерними элементами основного окна без использования делегата?

1 Ответ

0 голосов
/ 10 июня 2011

Используя Interaction из 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" />

Еслипри нажатии кнопки запускается триггер в TextBox и вызывается метод Clear в TextBox, очищающий текст.

...