Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法解析符号T_C#_Wpf_Observablecollection - Fatal编程技术网

C# 无法解析符号T

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<

我对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>()