を含むUserControlを作成しListView
ました。ListViewは、プロパティを介してパブリックにアクセスできます。UserControlをフォームに入れてListView
、プロパティを設計しようとするListView
と、再度コンパイルしてデフォルトの状態に戻るまで、その状態が維持されます。
デザインの変更を維持するにはどうすればよいListView
ですか?
を含むUserControlを作成しListView
ました。ListViewは、プロパティを介してパブリックにアクセスできます。UserControlをフォームに入れてListView
、プロパティを設計しようとするListView
と、再度コンパイルしてデフォルトの状態に戻るまで、その状態が維持されます。
デザインの変更を維持するにはどうすればよいListView
ですか?
次のように、ListView プロパティを DesignerSerializationVisibility 属性で装飾する必要があります。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ListView MyListView { get { return this.listView1; } }
これは、デザイナーのコード ジェネレーターにコードを出力するように指示します。
実行時にインスタンス化できるように、デザイナーがプロパティをページに永続化できるようにする必要がある場合、Fredrikは基本的に正しいです。これを行う方法は 1 つしかありません。それは、その値を ASPX ページに書き込むことです。このページは、ランタイムによって取得されます。
そうしないと、コントロールは毎回デフォルトの状態に戻ります。
ページ (およびそのコンテンツ) とコードは ASP.NET では完全に分離されており、実行時に接続されることを常に念頭に置いてください。これは、WinForms アプリ (フォームがオブジェクトのインスタンスである場合) のように、コード ビハインド デザイナーの優れたサポートを得られないことを意味します。
はっきり言って、あなたはこのようなことをしましたよね?
public ListView MyListView { get { return this.listView1; } }
では、(設計時に)UserControlのMyListViewプロパティにアクセスしているのでしょうか。
適切な設計時のサポートが必要な場合は、ListView自体の「Modifier」プロパティ(元のUserControlに戻る)をPublicに変更する方がよいと思います。そうすれば、UserControlのインスタンスでListViewを直接変更できます。とにかくそれをすることに成功しました。