2012-02-08 8 views
1

標準のxamlツールを使用してイベントトリガを呼び出すと、他のオブジェクトのDataContextの値を変更することはできますか? Thnx。Animate DataContext Silverlight

答えて

1

私はあなたが達成しようとしていることはわかりませんが、複数のユーザーコントロールが互いに話し合い、データを共有したり、何らかの種類のイベントを呼び出すようにしたいと思っています。コントロール間の結束を増やさずにこれを行うきれいできれいな方法は、メッセージングシステムを使用してメッセージを発行してメッセージに登録することです。これにより、イベントをトリガーし、異なるコントロール間でデータを渡すことができます。これをサポートするフレームワークがいくつかあります。

Prism EventAggregatorを調べることができます。 Prismライブラリは、MicrosoftのWebサイトからダウンロードできます。

もう1つのフレームワークはhttp://galasoft.ch/mvvm/です。 Messengerクラスを見てください。

他のオブジェクトのDataContextを変更する場合、最も簡単な方法は、オブジェクトのデータコンテキストをModelViewのプロパティにバインドすることです。それ以外の場合は、XAMLのオブジェクトのx:Name属性を設定し、イベントが呼び出されたときにdatacontextを別のものに変更するためのbehind-codeを参照できます。同じネームスコープ/クラス内にいる場合、これが想定されます。

*の.xaml

<ComboBox x:Name="ComboBox1"> 
    <ComboBoxItem Content="Blah"/> 
</ComboBox> 

* .XAML.cs

public void SomeEventInvoked(object sender, EventArgs e) 
{ 
     ComboBox1.DataContext = someObject; 
} 
関連する問題