Wpf 如何从separaete类方法引用viewmodel属性

Wpf 如何从separaete类方法引用viewmodel属性,wpf,c#-4.0,mvvm,Wpf,C# 4.0,Mvvm,我是个新手。 我正在尝试使用MVVM构建WPF应用程序。到目前为止,我已将视图模型属性绑定到视图。非常干净漂亮。没有代码隐藏 我的业务逻辑是基于用户输入启动一个或多个批处理过程。后台进程将依次更新视图的processbar和/或textblock上的状态 我的问题是 MVVM最常用的方法是什么? 我是否应该将批处理代码直接放在viewmodel类中?如果是,我的viewmodel类看起来很大(数千行) 或者我应该在BusinessLogic文件夹(层)中创建一个单独的类来存放批处理逻辑吗?如果是

我是个新手。 我正在尝试使用MVVM构建WPF应用程序。到目前为止,我已将视图模型属性绑定到视图。非常干净漂亮。没有代码隐藏

我的业务逻辑是基于用户输入启动一个或多个批处理过程。后台进程将依次更新视图的processbar和/或textblock上的状态

我的问题是 MVVM最常用的方法是什么? 我是否应该将批处理代码直接放在viewmodel类中?如果是,我的viewmodel类看起来很大(数千行)

或者我应该在BusinessLogic文件夹(层)中创建一个单独的类来存放批处理逻辑吗?如果是,我如何在业务逻辑类中引用输入/输出的viewmodel(UI)属性?只是将这些属性作为参数传递到业务逻辑类/方法中?如果是这样的话,看起来我必须传递很多属性作为参数。这是常见的MVVM方式吗

请给我指引正确的方向。
谢谢,

处理逻辑不应该出现在视图模型中,但是视图模型将“知道”如何启动流程,可能是通过实例化某个组件并对其调用方法,传递用户在UI中指定的任何参数

进行处理的组件可以发出状态事件(消息、完成百分比或两者)。视图模型可以订阅这些事件(并在处理完成时取消订阅),并相应地更新其属性

例如,您可能具有如下视图模型特性:

public string StatusMessage
 {
    get { return _statusMessage; }
    set 
    {
        _statusMessage = value;
        RaisePropertyChanged("StatusMessage"); // you need to implement INotifyPropertyChanged
    }
}
进行处理的组件可能会以10%的完成间隔发出一个事件,如果发生错误,则会发出另一个事件。您可以在视图模型中订阅这些事件,并将StatusMessage属性设置为“处理-30%完成”或“由于超时处理失败”