Adorner打破了MVVM吗?

Pad*_*oti 5 c# wpf xaml adorner mvvm

我正在使用MVVM开发一个WPF应用程序.我的大多数视图只有xaml标记,后面的代码没有任何内容(默认样板除外).

除了一个视图之外的所有视图,当我想要禁用整个屏幕时,我使用装饰器来"屏蔽"屏幕.

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        //todo: transfer to modelview
        contentAreaAdorner = AdornerLayer.GetAdornerLayer(contentArea);
        waitingAdorner = new WaitingAdorner(contentArea);
    }
Run Code Online (Sandbox Code Playgroud)

这可以吗?或者有更好的方法在我的viewmodel中实现它?

Rob*_*ney 18

减少代码隐藏是MVVM的一个好处,而不是目标.

MVVM的目的是使UI逻辑更简单,更可测试.如果将此方法移动到视图模型,您的代码是否会更简单,更可测试?很可能不是; 事实上它可能不那么重要.所以不要担心.