我正在使用Silverlight 5的隐式DataTemplate来连接ViewModel和View。
在我的MainView中有一个TabControl(来自Telerik),它绑定到MainViewModel的ObservableCollection。对于该Collection中所有可能的ViewModel类型,有一个DataTemplate定义了相应的View(= Tab)。
非常干净,完全脱离。
但现在我需要编写实际上只与视图相关的代码:我想手动将所选Tab的功能区合并到MainView的功能区。 ViewModel对相应的View没有任何了解,也不了解像Ribbon这样的UI元素(这是一件好事)。所以这是我需要编写代码隐藏的极少数情况之一。
我尝试了TabControl的SelectionChanged事件,但是所有属性(SelectedItem,SelectedValue,...)都指向ViewModel而不是View。
如何获取视图 - 使用DataTemplate由Silverlight 5连接?
感谢您的任何想法!
答案 0 :(得分:0)
简短的回答,你没有。使用具有强类型约束的事件聚合器或信使类。
使用MVVM-Light的一个很好的实现是Messenger类,请参阅此文章以获取信息。
http://blog.galasoft.ch/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx
无论如何,如果我理解你的话,你应该能够通过信使将标签发送给标签。