当某个事件(SelectedIndex
)发生时,我当前需要设置我的TabControl的IEventAggregator
属性,并考虑我是如何实现的。< / p>
我提出了两种可能性:
GetView()
提供的ViewAware
来访问我的TabControl并将SelectedIndex设置为我的值这两个选项都运行正常,但我个人希望回答这个问题,因为这不是我第一次想知道哪里在这种情况下实现功能。
我知道第一个选项不会启用Notify支持但除此之外:什么是正确的方法?
答案 0 :(得分:0)
使用GetView()
方法直接从viewmodel操作视图会完全破坏MVVM。您也可以将所有逻辑放在代码隐藏中。 MVVM的重点是抽象出实际视图,使其与逻辑分离,并且应用程序可以进行单元测试。
如果您将来改变对标签的看法并决定以其他方式显示多个视图,该怎么办?您现在必须开始编辑您的viewmodel以编辑新视图,而不是仅仅调整一些XAML。
对于单元测试,你将无法模拟你的TabControl。