2012-02-08 76 views

回答

1

我不確定你試圖達到什麼目的,但是如果你有多個用戶控件,你希望它們彼此對話並共享數據或調用某種事件。在不增加控件之間的內聚的情況下,完成此操作的一個好方法是使用消息傳遞系統發佈並註冊消息。這將允許您觸發事件並在不同控件之間傳遞數據。有幾個框架支持這一點。

你可能想看看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; 
} 
相關問題