2

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

ObservableCollection を持つ私のクラスは、ViewModelBase を継承します。

  public abstract class ViewModelBase : INotifyPropertyChanged
  {
    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string propertyName)
    {
      PropertyChangedEventHandler handler = PropertyChanged;

      if (handler != null)
      {
        handler(this, new PropertyChangedEventArgs(propertyName));
      }
    }
  }

どこに問題がありますか?

4

3 に答える 3

4

Tは単なるプレースホルダーです。のどこかに実際の型を指定する必要がありますT

たとえば、 がある場合、または(は、指定された制約に適合する他の型です)List<T>を作成できます。つまり、最初のケースと2 番目のケースです。List<int>List<string>TTintstring

于 2009-08-14T07:34:34.113 に答える
0

ジェネリックを少し読んでいただくと分かると思います

次のようにできます。

ObservableCollection<Customer> customerList = new ObservableCollection<Customer>()

次に、Customer クラスのインスタンス (および Customer から継承するサブクラスのインスタンス) を格納できる型付きコレクションを作成します。したがって、複数の型のインスタンスを追加できるようにするコレクションが必要な場合は、基本クラス (またはインターフェイス) を作成し、その基本クラスから継承するか、このインターフェイスを実装して、ObservableCollection を作成できます。例のための例。

于 2009-08-14T07:37:52.110 に答える
-1

以前に投稿したように、T はプレースホルダーです。おそらく次のようなものが必要です。

private ObservableCollection<T> _customerList = new ObservableCollection < ClassYouWantObserved > ();
于 2009-08-14T07:37:29.893 に答える