1

私は Visual Studio 2010 を使用しています。wpf に 2 つのカスタム ユーザー コントロール クラスがあります。また、MainWindow.xaml という名前の Main Usercontrol クラスがあります。ListTreeviewContentPane.xaml と ToolBarMenuContentPane.xaml という 2 つの異なるクラスを追加しました。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を変更しますか?

4

1 に答える 1

0

Blend SDKの Interaction を使用すると、他のコントロールのイベントでトリガーを実行したり、問題に合うと思われるメソッドを呼び出すことができます。

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が呼び出されて、テキストがクリアされます。

于 2011-06-10T10:14:21.910 に答える