質問

を持つ UserControl を作成しました。 ListView 初期化。ListView はプロパティを通じてパブリックにアクセスできます。UserControl をフォームに配置してデザインしようとすると、 ListView 不動産であっても、 ListView 再度コンパイルしてデフォルトの状態に戻るまで、そのままになります。

デザインの変更を適用するにはどうすればよいですか? ListView?

役に立ちましたか?

解決

次のように、ListView プロパティを DesignerSerializationVisibility 属性で修飾する必要があります。

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ListView MyListView { get { return this.listView1; } }

これにより、デザイナーのコード ジェネレーターにコードを出力するように指示されます。

他のヒント

フレドリック 基本的に、デザイナーがプロパティをページに永続化して、実行時にインスタンス化できるようにする必要がある場合は、これは正しいです。これを行う方法は 1 つだけあり、その値を ASPX ページに書き込み、ランタイムによって取得されることです。

それ以外の場合、コントロールは毎回単純にデフォルトの状態に戻ります。

ASP.NET では、ページ (およびそのコンテンツ) とコードは完全に分離されており、実行時に接続されるということを常に念頭に置いてください。これは、WinForms アプリ (フォームがオブジェクトのインスタンスである場合) のように、優れた分離コード デザイナー サポートが得られないことを意味します。

はっきり言っておきますが、あなたはこのようなことをしたことがありますよね?

public ListView MyListView { get { return this.listView1; } }

それでは、(設計時に) UserControl の MyListView プロパティにアクセスしているのでしょうか?

適切なデザイン時のサポートが必要な場合は、ListView 自体 (元の UserControl に戻す) の "Modifier" プロパティを Public に変更する方が良いと思います。 そうすることで、UserControl のインスタンスで ListView を直接変更できるようになります。とにかくそうすることで成功しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top