C# 设置一个列表<;对象>;使用MVVM创建模型

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; }

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

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

最后,我有一个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: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>();
}