【发布时间】:2019-12-18 23:11:38
【问题描述】:
所以,我有一个状态栏作为 UserControl。
型号:
public class StatusBarModel : BindableBase
{
private string _status;
public string Status
{
get { return _status; }
set
{
_status = value;
RaisePropertyChanged("Status");
}
}
private int _p_value;
public int P_Value
{
get { return _p_value; }
set
{
_p_value = value;
RaisePropertyChanged("P_Value");
}
}
}
视图模型:
public class StatusBarVM : BindableBase
{
readonly source.elements.StatusBar.StatusBarModel _model = new source.elements.StatusBar.StatusBarModel();
public StatusBarVM()
{
_model.PropertyChanged += (s, e) => { RaisePropertyChanged(e.PropertyName); };
}
public string Status
{
get { return _model.Status; }
set { _model.Status = value; }
}
public int P_Value
{
get { return _model.P_Value; }
set { _model.P_Value = value; }
}
}
例如,我想从其他 ViewModel 更改 Status 变量。 我该怎么做?我见过只有按钮等的例子。
【问题讨论】:
-
在 MVVM 中,您可以将 ViewModel 相互嵌套。你经常有暴露 VM 的 VM 和 Expose VM's。最高的将成为默认的应用程序视图模型。 |然而,带有快捷方式和消息系统的命令模式也可能是您正在寻找的机器人。
-
VM 的层次结构?)
-
你使用 Prism.Wpf 吗?
-
是的,我使用 Prism.Wpf。