C# 获取ObservableCollection的父级
我想引用包含ObservableCollection的对象,方法是仅从集合中推断它。如何在C#中实现这一点 范例C# 获取ObservableCollection的父级,c#,C#,我想引用包含ObservableCollection的对象,方法是仅从集合中推断它。如何在C#中实现这一点 范例 public class Order: INotifyPropertyChanged { public DateTime OrderDate {get; set;} public ObservableCollection<Item> ItemsA {get; set;} public ObservableCollection<
public class Order: INotifyPropertyChanged
{
public DateTime OrderDate {get; set;}
public ObservableCollection<Item> ItemsA {get; set;}
public ObservableCollection<Item> ItemsB {get; set;}
public ObservableCollection<Item> ItemsC {get; set;}
}
公共类顺序:INotifyPropertyChanged
{
public DateTime OrderDate{get;set;}
公共ObservableCollection项a{get;set;}
公共ObservableCollection项SB{get;set;}
公共ObservableCollection项C{get;set;}
}
代码中的引用
private void ItemsChanged(ObservableCollection<Item> items)
{
Order newOrder = items.Parent(); // <-- How can this be done?
if (newOrder.OrderDate <= new DateTime (2016, 6, 30)
{
}
}
private void ItemsChanged(可观察到的收集项目)
{
Order newOrder=items.Parent();//扩展ObservableCollection怎么样
public ChildObservableCollection<T> : ObservableCollection<T>
{
private Order parent { get;set;}
}
公共儿童ObservableCollection:ObservableCollection
{
私有顺序父{get;set;}
}
用法:
public class Order: INotifyPropertyChanged
{
public Order()
{
ItemsA = new ChildOberservableCollection<Item>();
ItemsA.parent = this;
...
}
public DateTime OrderDate {get; set;}
public ChildObservableCollection<Item> ItemsA {get; set;}
public ChildObservableCollection<Item> ItemsB {get; set;}
public ChildObservableCollection<Item> ItemsC {get; set;}
}
公共类顺序:INotifyPropertyChanged
{
公共秩序()
{
ItemsA=新的ChildOberservableCollection();
ItemsA.parent=这个;
...
}
public DateTime OrderDate{get;set;}
public childobserveCollection ItemsA{get;set;}
public ChildObservableCollection ItemsB{get;set;}
public childobserveCollection ItemsC{get;set;}
}
代码中的引用:
private void ItemsChanged(ChildObservableCollection<Item> items)
{
Order newOrder = items.parent; // done!
if (newOrder.OrderDate <= new DateTime (2016, 6, 30)
{
}
}
private void ItemsChanged(childobservedcollection items)
{
Order newOrder=items.parent;//完成!
如果(newOrder.OrderDate我刚刚提出了一种linq方法,它在某些情况下也很有用:
(from order in orders
from itemA in order.ItemsA
select new { o = order.Date, i = itemA.ID }).ToList())
你能在这个问题的上下文中添加一个用法的例子吗?谢谢,太好了!这太好了。我唯一要改变的是为childobservedcollection
添加一个构造函数,它将父对象作为参数,这样你就不能在不指定父对象的情况下构造一个构造函数。多个对象可以包含对单个inst的引用您的ObservableCollection的重要性
。您希望如何选择正确的“父对象”?使问题复杂化的是,对象引用不是按树排列的-语言中没有父对象的概念。引用可以是循环的,一个对象可以引用自身,两个对象可以相互引用。最好明确说明至少,你希望语言能做到这一点。Sancho Panza的回答很好。谢谢。我认为你让我走上了正确的道路,因为我认为必须始终存在一个Order对象,这使得提供GetParent()方法之类的东西变得很容易。