C# 设置一个列表<;对象>;使用MVVM创建模型
我需要一些关于使用MVVM模式的C#代码的帮助 我有一个类,其中引用了另一个类的列表(为了更好地理解,我重命名了我的字段): 最后,我有一个ViewModel:C# 设置一个列表<;对象>;使用MVVM创建模型,c#,list,mvvm,C#,List,Mvvm,我需要一些关于使用MVVM模式的C#代码的帮助 我有一个类,其中引用了另一个类的列表(为了更好地理解,我重命名了我的字段): 最后,我有一个ViewModel: class MyViewModel : INotifyPropertyChanged { private readonly Class1 class1; /* ... */ public string myString { get { return class1.MyString; }
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:INotifyPropertyChanged
{
私有只读类1;
/* ... */
公共字符串myString
{
获取{return class1.MyString;}
设置
{
class1.MyString=值;
OnPropertyChange(“MyString”);
}
}
//在这里发布
//私有列表_mylist=新列表;
公共列表其他类
{
获取{return class1.OtherClass;}
设置
{
//类别1.其他类别。增加(价值);
class1.OtherClass=值;
OnPropertyChange(“其他类别”);
}
}
/* ... */
}
当我需要填充模型时,我只需执行以下操作,例如(在我的代码中):
myViewModel.myString=myvalue代码>
现在,在我的代码中,我有一个包含更正值的列表:
myList=newotherclass(value1、value2、value3)
当我想在模型中添加此对象列表时,该条目的模型将保持为空:
myViewModel.OtherClass=myList或myViewModel.OtherClass.Add(myList)
我肯定是做错了什么。。。如果有人能帮我吗?我没有看到初始化列表的代码,请尝试在Class1
中更改:
public List<OtherClass> otherclass { get; set; }= new List<OtherClass>();
我没有看到初始化列表的代码,请尝试在Class1
中更改:
public List<OtherClass> otherclass { get; set; }= new List<OtherClass>();
您需要为构造函数中Class1
字段的Class1
创建对象实例。否则,您将尝试设置空对象的属性。class1=new class1()
仅尝试实例化class1
?您需要为构造函数中class1
字段的class1
创建对象实例。如果不这样做,您将尝试设置null对象的属性。class1=new class1()
仅尝试实例化class1
?您的意思是public List otherclass{get;}=new List()代码>有时。。。我们转向不多:)我添加了一个默认构造函数,现在可以在模型中添加一个对象列表。非常感谢!您的意思是public List otherclass{get;}=new List()代码>有时。。。我们转向不多:)我添加了一个默认构造函数,现在可以在模型中添加一个对象列表。非常感谢!
public List<OtherClass> otherclass { get; set; }= new List<OtherClass>();
public Class1()
{
this.otherclass = new List<OtherClass>();
}