1

ObservableCollectionリストオブジェクトに1つのオブジェクトを追加する方法は? 「Assest」というクラスがあり、アセットの ObservableCollection リストを作成しました。その ObservableCollection リストから要素を追加および削除するように維持したいと考えています。ObservableCollection に単一の要素を追加しようとすると、エラーが発生します。

これが私のコードです。

    private static ObservableCollection<Assest> _collection = null;

    public ObservableCollection<Assest> AssestList
    {
        get
        {
            if (_collection == null)
            {
                _collection = new ObservableCollection<Assest>();
            }
            return _collection;
        }
        set { _collection = value; }
    }

    public static ObservableCollection<Assest> ToObservableCollection(List<Assest> assestList)
    {
        return new ObservableCollection<Assest>(assestList);
    }

    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = this;
        LoadData();
        comboBox1.ItemsSource = AssestList;
    }

    private void LoadData()
    {
        Assest assest = new Assest() { AppID = "1", AssestName = "AppName", AppDescription = "Description" };
        Assest assest2 = new Assest { AppDescription = "Des2", AppID = "2", AssestName = "hi" };

        List<Assest> assList = new List<Assest> {assest, assest2};

        ObservableCollection<Assest> generatedAssestList = ToObservableCollection(assList);
        AssestList = generatedAssestList;
    }

    // Here I get an error.

    public static void AddAppToObservalCollection(Assest ass)
    {
        _collection.Add(ass);
    }

では、このような状況をどう乗り切るか。みんな、ありがとう。

4

2 に答える 2

3

あなたのコードは少し乱雑です。AssestList と _collection の両方が必要な理由が明確ではありません。

ただし交換は必要だと思います

_collection.Add(ass);

AssestList.Add(ass);
于 2013-03-07T09:39:44.923 に答える
1

AssestListのゲッターを呼び出している間、_collectionオブジェクトはまだnullのままです。したがって、「_ collection.Add(ass);」を使用すると、nullになる可能性があります(また、_collectionはプライベートであるため、静的関数からアクセスすることはできません)

これを回避するには、常にAssestListを使用します。

于 2013-03-07T09:55:41.710 に答える