gpt4 book ai didi

c# - 使用MVVM将List 设置为模型
转载 作者:行者123 更新时间:2023-12-03 11:01:37 24 4
gpt4 key购买 nike

我需要一些使用MVVM模式的C#代码的帮助。

我有一个带有其他类列表的引用的类(为了更好地理解,我重命名了我的字段):

class Class1
{
/* ... */
public string myString { get; set; }
public List<OtherClass> otherclass { get; set; }
}

名为“otherclass”的类如下所示:
class OtherClass
{
public OtherClass(string str1, string str2, string str3)
{
Str1 = str1;
Str2 = str2;
Str3 = str3;
}

public string Str1 { get; set; }
public string Str2 { get; set; }
public string Str3 { get; set; }
}

最后,我有一个ViewModel:
class MyViewModel :  INotifyPropertyChanged
{
private readonly Class1 class1;

/* ... */
public string myString
{
get { return class1.MyString; }
set
{
class1.MyString = value;
OnPropertyChange("MyString");
}
}

// Issue here
// private List<OtherClass> _mylist = new List<OtherClass>;
public List<OtherClass> OtherClass
{
get { return class1.OtherClass; }
set
{
// class1.OtherClass.Add(value);
class1.OtherClass = value;
OnPropertyChange("OtherClass");
}
}

/* ... */
}

当我需要填充模型时,我只是在做示例(在我的代码中):
myViewModel.myString = myvalue;
现在,在我的代码中,我有一个带有正确值的列表:
myList = new OtherClass(value1, value2, value3)

当我想在模型中添加此对象列表时,该模型的该条目保持为空:
myViewModel.OtherClass = myList or myViewModel.OtherClass.Add(myList)
我肯定做错了...如果有人可以帮助我,请吗?

最佳答案

我看不到初始化列表的代码,请尝试更改Class1:

public List<OtherClass> otherclass  { get; set; }= new List<OtherClass>();

或向初始化 List的Class1添加默认构造函数。虽然未初始化,但无法将项目添加到 List
public Class1()
{
this.otherclass = new List<OtherClass>();
}

关于c# - 使用MVVM将List <Object>设置为模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60560428/

24 4 0