1
使用標準xaml工具調用事件觸發器時,是否可以更改其他對象的DataContext的值?日Thnx。Animate DataContext Silverlight
使用標準xaml工具調用事件觸發器時,是否可以更改其他對象的DataContext的值?日Thnx。Animate DataContext Silverlight
我不確定你試圖達到什麼目的,但是如果你有多個用戶控件,你希望它們彼此對話並共享數據或調用某種事件。在不增加控件之間的內聚的情況下,完成此操作的一個好方法是使用消息傳遞系統發佈並註冊消息。這將允許您觸發事件並在不同控件之間傳遞數據。有幾個框架支持這一點。
你可能想看看Prism EventAggregator。 Prism庫可以從微軟網站下載。
另一個框架是http://galasoft.ch/mvvm/。看看Messenger類。
如果要更改其他對象的DataContext,最簡單的方法是將對象的datacontext綁定到ModelView中的屬性。否則,只需在XAML中爲該對象設置x:Name屬性,並在後面的代碼中引用該屬性,以便在調用該事件時將datacontext更改爲不同的內容。如果您位於同一個名稱範圍/類中,則假定這是假設的。
* .XAML
<ComboBox x:Name="ComboBox1">
<ComboBoxItem Content="Blah"/>
</ComboBox>
* .XAML.cs
public void SomeEventInvoked(object sender, EventArgs e)
{
ComboBox1.DataContext = someObject;
}