应该在哪里实施IScrollInfo:View还是ViewModel?

时间:2011-02-16 02:39:49

标签: wpf mvvm

我需要实现IScrollInfo接口,这是我读过的一个野兽。但我正在努力应该实施它。

我认为它应该在View中,因为MakeVisible方法中有对Visual的引用。此外,当您设置CanContentScroll =“True”时,ScrollViewer将查找IScrollInfo接口。这意味着安排我的对象的自定义面板将需要通过调用VM的实现来继承ViewModel或将ViewModel包装在视图中。

我错了,它应该在ViewModel中吗?

2 个答案:

答案 0 :(得分:4)

我认为IScrollInfo是纯粹的视图。它代表一个“可滚动区域” - 在特定视图之外没有任何意义。 “可滚动区域”中没有涉及业务逻辑,因此,它应该完全不在ViewModel中。

答案 1 :(得分:0)

您在自定义Panel上实现IScrollInfo。因此,它是特定于视图的。然而,有一个扭曲。由于WPF控件的外观模型,控件本身是一种视图模型。