我使用Silverlight 5的隱式DataTemplates來連接ViewModel和View。帶隱式DataTemplates的MVVM - 明確獲取視圖
在我的MainView中有一個TabControl(來自Telerik),它綁定到MainViewModel的ObservableCollection。對於該集合中所有可能的ViewModel類型,都有一個DataTemplate,它定義了相應的View(= Tab)。
很乾淨,完全解耦。
但現在我需要編寫的代碼實際上只與視圖有關:我想手動合併所選Tab的Ribbon到MainView的Ribbon。 ViewModels不具備任何相應視圖的知識,也不知道有關UI元素(如Ribbon)(這是件好事)。所以這是我需要編寫代碼隱藏的非常罕見的場合之一。
我嘗試了TabControl的SelectionChanged事件,但所有屬性(SelectedItem,SelectedValue,...)都指向ViewModel而不是View。
如何獲取視圖 - 哪些由Silverlight 5使用DataTemplate連線?
感謝您的任何想法!
發送一條消息,包含待(未)合併功能區可以工作,我猜。推測標籤的「已加載」和「未加載」事件將是觸發消息的正確位置。但我仍然想知道是否有辦法從隱式DataTemplate通過Silverlight連線時獲得視圖... – 2011-06-06 20:57:14
可能,但這不應該是它的做法... – Firoso 2011-06-06 22:22:28
使用信使解決了我的問題確實。因此,即使我的原始問題(「在通過隱式DataTemplate連接時引用視圖」)仍處於打開狀態,我仍接受了您的答案。 – 2011-06-10 10:06:00