我目前正在设计一个主细节gridview。我为它们定义了两个单独的对象。父网格视图绑定到第一个对象,在行数据绑定事件中,我使用父ID将第二个网格视图绑定到详细信息对象。
我在互联网上看到的很多例子初始化了父类中的详细信息对象,
public class Author
{
private string name;
public BooksList books=new BooksList();
public BooksList Books
{
get
{
return emailAddresses;
}
set
{
emailAddresses = value;
}
}
初始化子类的目的是什么? 父类?
目前,我只是将父母绑定到一个单独的对象&孩子到了 在我的表示层中手动分离对象&永远不会初始化父类中的子对象。这是错误的方式 对于OOP?
- 为gridview实现此任务的推荐方法是什么?
醇>
达明。
答案 0 :(得分:1)
1:大多数情况下,您希望初始化类中的对象以避免出现空引用问题。
2:你在这里混淆了你的概念,因为你呈现对象的方式与OOP并不真正相关。等式的OOP部分是关于你的类是什么以及它们如何相互关联,所以是的,如果父类和子类之间存在关系,那么它应该在类结构中表示。
3:理想情况下,您将拥有一个允许绑定到数据网格的类结构,并可以自动为您的数据网格生成层次结构。
答案 1 :(得分:1)
您是否认为作者不是/不应该负责维护他/她的书籍清单?什么书? Whas是唯一的作者还是共同作者?你会如何解决这个问题?
我可以建议一个“图书馆”课程,其中包含一系列书籍,您可以查看,登记等。每本书都有一个或多个作者参考。您可以在书类中实例化这些,但我认为如果它们是图书馆作者列表的引用(更好)会更好。这样每个作者只存在一次,而不是在他(共同)写的每本书中都有一个实例。
答案 2 :(得分:1)
如果你想强制所有作者每次都有一个书单(空或不空)那么你就这样做。否则,如果您想在很多情况下考虑将null作为BookList以避免创建不需要的空对象,那么您可以创建Booklist,并在案例需要时通过构造函数将特定的booklist实例注入作者,或者稍后再设置它根据您的需要使用二传手。