【发布时间】:2018-11-11 15:04:58
【问题描述】:
我是 WPF MVVM 的新手
我在这里有 3 个类(所有类都有相同的 BaseParent):
---- 问题是----> 每当我在 [DPropertyViewModel] 中设置 BaseParents GroupContent 时,它都不会更新 [DConsoleViewModel] 中的 ConsoleText。
型号:
public class BaseDParent
{
public string GroupType { get; set; } = "None";
public string GroupName { get; set; } = "None";
public string GroupContent
{
get => _groupcontent;
set
{
_groupcontent = value;
SetContent();
}
}
private string _groupcontent;}
视图模型:
public class DConsoleViewModel : DNotify
{
public BaseDParent DElement
{
get => _delement;
set
{
_delement = value;
NotifyPropertyChanged();
}
}
private BaseDParent _delement;
public string ConsoleText
{
get => DElement.GroupContent;
set
{
DElement.GroupContent = value;
NotifyPropertyChanged();
}
}}
这是我更改 BaseParents GroupContent 的地方:
public class DPropertyViewModel : DNotify
{
public BaseDParent DElement
{
get => _delement;
set
{
_delement = value;
NotifyPropertyChanged();
}
}
private BaseDParent _delement;
public string Level { get; set; } = "0";
public string Property { get; set; } = "Property";
public string Value { get; set; } = "-Null-";
public void SetDElementPropertyValue()
{
string startline = " " + DElement.GroupType + " " + DElement.GroupName + DHelper.NewLine();
string subpropline = DHelper.NewLine() + Level + " " + Property + " ";
int start = DElement.GroupContent.IndexOf(startline);
int propstart = DElement.GroupContent.IndexOf(subpropline, start - 3) + subpropline.Length;
int propnext = DElement.GroupContent.IndexOf(DHelper.NewLine(), propstart);
string propvalue = DElement.GroupContent.Substring(propstart, propnext - propstart);
string toremove = subpropline + propvalue + DHelper.NewLine();
int toaddindex = DElement.GroupContent.IndexOf(toremove);
DElement.GroupContent = DElement.GroupContent.RemoveSub(toremove);
string toadd = subpropline + Value + DHelper.NewLine();
DElement.GroupContent = DElement.GroupContent.Insert(toaddindex, toadd);
}
}
感谢您的帮助:)
【问题讨论】: