C# 无法解析符号T
我对ObservableCollection类有问题。我无法解决这个问题C# 无法解析符号T,c#,wpf,observablecollection,C#,Wpf,Observablecollection,我对ObservableCollection类有问题。我无法解决这个问题 using System.Collections.ObjectModel; #region ViewModelProperty: CustomerList private ObservableCollection<T> _customerList = new ObservableCollection<T>(); public ObservableCollection<
using System.Collections.ObjectModel;
#region ViewModelProperty: CustomerList
private ObservableCollection<T> _customerList = new ObservableCollection<T>();
public ObservableCollection<T> CustomerList
{
get
{
return _customerList;
}
set
{
_customerList = value;
OnPropertyChanged("CustomerList");
}
}
#endregion
你知道问题在哪里吗?
T
只是一个占位符。您需要在某处为T
提供实际类型
例如,如果您有
列表
,您可以制作列表
或列表
(T
是符合给定约束条件的任何其他类型)。也就是说,T
在第一种情况下是int
,在第二种情况下是string
。如前所述,T是一个占位符。您可能需要以下内容:
private ObservableCollection<T> _customerList = new ObservableCollection < ClassYouWantObserved > ();
private observedcollection\u customerList=new observedcollection();
我想,当你读一读上面的内容时,你就会明白了
你可以这样做:
ObservableCollection<Customer> customerList = new ObservableCollection<Customer>()
ObservableCollection客户列表=新ObservableCollection()
然后,您将拥有一个类型化集合,它将能够存储Customer类的实例(以及从Customer继承的子类的实例)。
因此,如果希望有一个集合,其中可以添加多种类型的实例,可以创建一个基类(或接口),并从该基类继承或实现该接口,并为ex创建一个ObservableCollection实例。我有两种不同的类型我添加了这个集合,请参见:您仍然需要用特定类型替换T。如果你的不同类型有一个共同的基类,你可以用它来做T。如果他们不使用,你可以使用对象,但是在这种情况下,你可能需要考虑改变你的设计。这个片段显然是错误的;我猜您也要更改第一个T。我有一个基类Customer,其中有两个类(PrivateCustomer和CorporateCustomer)继承自Customer。现在,我希望任何子类对象只添加到一个ObservableCollection中,并绑定到一个DataGrid。
ObservableCollection<Customer> customerList = new ObservableCollection<Customer>()