//class MessageModel
public class MessageModel
{
public string Name{get;set;}
public BindingList<AttachDocument> _attachDocument {get;set;};
}
// class AttachDocument that it's object is a MessageModel property
public class AttachDocument
{
public string AttachName { get; set; }
public bool IsCheck { get; set; }
}
MessageModel source = new MessageModel { AttachDocument = new BindingList<AttachDocument>()};
MessageModel value = new MessageModel { AttachDocument = new BindingList<AttachDocument>()};
// Error "AttachName" is not defined
source.AttachDocument.AttachName = value.AttachDocument.AttachName; // What I want to access
那么如何在其他对象的属性中访问访问对象的属性并赋值。
答案 0 :(得分:1)
您的类中的AttachDocument没有属性,只有成员变量。这需要首先包含在get / set中。
然后AttachDocument属性是AttachDocument实例的列表,而不是单个实例,因此您遇到的问题是AttachName不是列表中的属性 。
答案 1 :(得分:1)
我认为你想要这个:
MessageModel source = new MessageModel { AttachDocument = new BindingList<AttachDocument>()};
source._attachDocument[myIndex].AttachName = "Name";
但是,假设您已经创建了AttachDocument
的实例,并已将其分配到_attachDocument
的{{1}}列表中:
source
旁边MessageModel source = new MessageModel { _attachDocument = new BindingList<AttachDocument>()};
source._attachDocument.Add(myDocument);
是一个公共财产的坏名称。您应该明确遵循命名约定。因此,将_attachDocument
更改为_attachDocument
。属性可以与其类型的类具有相同的名称。但是在您的情况下,该属性是一个文档列表,因此最好的名称是AttachDocument
,最后带有“s”。这清楚地表明该属性是某种需要访问索引的集合。
答案 2 :(得分:1)
没有名称为AttachDocument
的媒体资源。它是一个与您定义的字段无关的类。您需要解决几个问题:
public
,以便在您的课程之外访问该字段; 由于您想迭代列表,因此您需要foreach
:
public class MessageModel
{
public string Name{get;set;}
public BindingList<AttachDocument> AttachDocuments {get;set;}
}
foreach (AttachDocument s in source.AttachDocuments)
{
AttachDocument t = new AttachDocument();
t.AttachName = s.AttachName;
value.AttachDocuments.Add(t);
}