我有一个名为Invoice的课程
public Invoice() {
this.ServiceId = 0;
this.Sections = new List<Section>();
}
我有另一个名为Sections的课程
public Section() {
this.Items = new List<Item>();
}
还有另一个名为Item
的类public Item() {
blah, blah;
}
现在我将Item的对象传递给我的windows用户控件,我需要更新位于Invoice类的'ServiceId'属性。我的问题是有没有办法从我的项目对象编辑该属性?我将如何做到这一点。
其他值得注意的信息是,我的班级都没有继承任何东西。意味着Item不是从Section和Section继承而不是来自Inspection。它们只是列表集合。谢谢你的帮助。
答案 0 :(得分:1)
执行此操作的好方法是通过分层依赖注入。 Section
类应该有一个需要Invoice
和Parent
或ParentInvoice
属性的构造函数:
public Section()
{
this.Items = new List<Item>();
public Invoice Parent { get; set; }
public Section(Invoice parent)
{
this.Parent = parent;
}
}
同样Item
;它应该要求Section
作为父母。然后从任何项目中你都可以使用
Invoice i = this.Parent.Parent;
您可以创建将添加部分和项目的方法,如下所示:
public Invoice()
{
//....
public Section AddSection()
{
var s = new Section(this);
Sections.Add(s);
return s;
}
//...
}