请原谅我的无知,因为我是 C# 新手。
我目前正在开发一个 MVVM 项目,其中视图模型具有多个实例化的公共变量,这些变量与视图中的元素 (WPF) 进行数据绑定。当这些变量发生变化时,它们在我看来会自动更新。以我的视图模型中的以下代码段为例...
private string _displaybind;
public string DisplayBind
{
get { return _displaybind; }
set
{
SetProperty(ref _displaybind, value);
if (_displaybind.Length > 5000)
{
DisplayBind = _displaybind.Substring(_displaybind.IndexOf('\n') + 1);
}
}
}
通过使用命令DisplayBind = "Hello"; 在我的视图模型中,我可以将文本推送到我位于 XAML 视图中的文本框。不幸的是,我已经到了不能简单地编辑 DisplayBind 的值的地步。
我需要在我的视图模型中启动一个状态机,它将访问不同 C# 文件中的多个状态(类)。但是,我不知道如何接收,更重要的是从这些单独的类中编辑我的视图模型中的值。
我使用这个在我的视图模型中启动我的状态机......
IPMProgram ipmprogram = new IPMProgram();
ipmprogram.StartTheIPMProgram();
这是我的 IPMProgram 课程
public class IPMProgram
{
public IPMProgramState currentState = null;
public IPMProgram()
{
currentState = new BootBannerState(this);
}
public void StartTheIPMProgram()
{
while (true)
{
currentState.GetNextState();
}
}
}
这是我的 IPMProgramState 类
public abstract class IPMProgramState
{
private IPMProgram ipmprogram;
public IPMProgram Ipmprogram
{
get { return ipmprogram; }
set { ipmprogram = value; }
}
public abstract void GetNextState();
}
这是我的 BootBannerState 类(我想从中编辑 DisplayBind 的状态)
class BootBannerState : IPMProgramState
{
public BootBannerState(IPMProgramState state)
:this(state.Ipmprogram)
{
}
public BootBannerState(IPMProgram ipmprograminstance)
{
this.Ipmprogram = ipmprograminstance;
}
public override void GetNextState()
{
//DisplayBind = "Hello"!
return;
}
}
有人建议我应该研究依赖注入,但我不太明白它对我的工作原理。我应该怎么办?
谢谢大家的帮助,
泰斯尼希