请原谅我的无知,因为我是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);
}
}
}
在我的viewmodel中使用命令 DisplayBind =" Hello&#34 ;; 我可以将文本推送到我在XAML视图中找到的文本框。不幸的是,我已经达到了一个不能简单地编辑DisplayBind值的地步。
我需要在我的viewmodel中启动一个状态机,它将访问单独的C#文件中的几个状态(类)。但是,我不知道如何从这些单独的类中接收,更重要的是编辑我的viewmodel中的值。
我在我的viewmodel中启动了我的状态机...
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;
}
}
有人建议我应该研究依赖注入,但我不太明白它对我有用。我该怎么办?
感谢您的所有帮助,
Tesnich