0

ListViewItem.ListView プロパティは、所有者 ListView に追加された後に自動的に設定されます。ただし、ListViewItem.ListView プロパティにはセッターがありません。

ListViewItem item = new ListViewItem(); // item.ListView == null here. listView.Items.Add( item ); // item.ListView != null where no setter.

ListViewItem.ListView get プロパティの実装について教えてください。ListView.Items.Add() メソッド内で設定されるプライベート フィールドは何ですか? そしてどうやって?ListView と ListViewItem の関係と同様のクラス関係を作成しようとしています。

ご協力ありがとうございました。

4

2 に答える 2

0

プロパティには、値を格納する基になる変数があります。おそらく、ListView に追加する実装によって、この変数が正しい値に設定されます。

于 2012-05-09T15:52:31.747 に答える
0

ListViewItemCollection.Addの内部メソッドを (間接的に) 呼び出しますListViewItem:

internal void Host(ListView parent, int ID, int index)
{
    this.ID = ID;
    this.listView = parent;
    if (index != -1)
    {
        this.UpdateStateToListView(index);
    }
}

(このコードは、Reflector や JustDecompile などの逆コンパイラで確認できます)

于 2012-05-10T15:47:15.500 に答える