UserControlで苦労しています。Pagerを表すUserControlがあり、次のように公開されたPresenterオブジェクトプロパティがあります。
[Browsable(false)]
[DesignSerializationAttribute(DesignSerializationAttribute.Hidden)]
public object Presenter { get; set; }
Visual Studioでこのプロパティを初期化せずに、コントロールをWindows Fromにドラッグアンドドロップできるため、コード自体は機能します。ここで、このコントロールのLoadイベントで、実行時にnullであるPresenterのメソッドを呼び出すため、次の追加コードを導入しました。
public override void OnLoad(...)
{
if (this.DesignMode)
{
base.OnLoad(e);
return;
}
presenter.OnViewReady();
}
これで、このUserControlを含むウィンドウを開くたびに、VisualStudioによってWindowsデザイナーコードが変更されます。したがって、開くとすぐに、VSはそれを保存するかどうかを尋ねます...そしてもちろん、ウィンドウにコントロールを追加すると、変更は保持されません...削除するとすぐにUserControl Pagerの問題は解消されます...適切な方法でこれに取り組むにはどうすればよいですか?プレゼンタープロパティは実行時に注入されるため、設計時に初期化されることは望ましくありません...