c# - C# WPF MVVM | 更改绑定到状态栏变量
问题描述
所以,我有一个状态栏作为用户控件。
模型:
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变量。我该怎么做?我见过只有按钮等的例子。
解决方案
您可以创建一个静态类来保存该值。
public static class Globals()
{
public static StatusBarModel GlobalStatus { get; set; }
}
然后,每当您想更改它时,您就可以
Globals.GlobalStatus.Status = "something";
Globals.GlobalStatus.P_Value = 14;
这能满足你的需要吗?
推荐阅读
- docker - NextJS 应用程序使用 Docker 和 NGINX 部署,所以我可以有一个自定义的基本路径
- google-cloud-platform - 某些列的 Google BigQuery bq 负载?
- java - 在处理中从数组列表中删除对象的问题
- python - Python:statsmodel中的多个qqplot
- uwp - 如何使用 SCCM 卸载 UWP 应用
- php - 带图像的数据未发送到 mysql
- java - openapi-generator with spring-boot, remove generated values
- keras - 为什么我的模型在训练时训练准确率很高,但在部署时却很低?
- mysql - 重试事务的Mysql错误代码
- python - dask jobqueue 动态分配工作资源