1

What is the difference between ReadOnlyObservableCollection and ObservableCollection?

I have the following code snippet:

private ObservableCollection<FeedData> _Feeds = new ObservableCollection<FeedData>();
public ObservableCollection<FeedData> Feeds
{
    get
    {
        return this._Feeds;
    }
}

Can I replace ObservableCollection with ReadOnlyObservableCollection?

4

2 に答える 2

2

Try adding to the _Feeds when it's a ReadOnly Collection.

It's a wrapper that prevents you from changing the collection. Of course its just a wrapper so if you have reference to the underlying collection, you can by pass the ReadOnly

The clue is in the name.

于 2012-05-27T02:55:37.453 に答える
1

ReadOnlyObservableCollectionの読み取り専用ラッパーObservableCollectionです。

この読み取り専用ラッパーを使用して変更を加えることはできませんが、基になるObservableCollectionへのすべての変更はReadOnlyObservableCollectionに反映されます。

ObservableCollectionがReadOnly(readonlyプロパティではなく、ReadOnlyObservableCollection)として公開されていない場合、基になるコレクションは変更にさらされます。

プロパティが読み取り専用であっても、プロパティによって返される配列は書き込み保護されません。配列の改ざん防止を維持するには、プロパティは配列のコピーを返す必要があります。通常、ユーザーは、そのようなプロパティを呼び出すことによるパフォーマンスへの悪影響を理解しません。具体的には、プロパティをインデックス付きプロパティとして使用する場合があります。

CA1819:プロパティは配列を返さないはずです

于 2012-05-27T03:03:46.530 に答える