1

ユーザーコントロールが初期化されないようにするにはどうすればよいですか?InitializeComponent()のコンストラクターではなく、自分で初期化したい。?

4

2 に答える 2

3

それはばかげているように見えますが、あなたはすでにあなたの質問に答えています。への呼び出しを削除しますInitializeComponent()。自動生成されたデザイナーコードの再作成を楽しんでください!

編集:

さて、あなたの編集ごとに、あなたが解決しようとしている実際の問題が何であるかを知っています:

返信ありがとうございますが、問題は少し異なります。このコントロールは私のものではありません(Windows Liveコントロールです)。ページ内の他のすべてのコントロールを適切に初期化する必要があります。これは、ユーザーの要求に応じて後でロードする必要があります(インターネットに接続し、wp7アプリケーションです)。これを達成する方法は?

したがって、設計時ではなく実行時にコントロールを追加する必要があります。これは簡単です。

var ctrl = new SomeControl();
// initialize control properties...

// this is your user control, a control within 
// the user control, whatever the parent should be.
parentControl.Children.Add(ctrl);  
于 2012-04-17T19:28:24.457 に答える
3

なぜそれをしているのかわからない。構築に時間がかからないように怠惰な初期化?

とにかく、パブリックメソッドを作成し、そこにInitializeComponentを移動します。また、2回初期化しないように、プライベートフィールドを作成することを忘れないでください。

private bool _isInitialized;

public void InititializeControl()
{
    if(_isInitialized) return;

    _isInitialized = true;
    InitializeComponent();

} 

その後、必要なときにそれを呼び出します。

于 2012-04-17T19:34:36.060 に答える