我正在努力使用 UserControl。我有一个代表 Pager 的 UserControl 并且它有一个 Presenter 对象属性以这种方式公开:
[Browsable(false)]
[DesignSerializationAttribute(DesignSerializationAttribute.Hidden)]
public object Presenter { get; set; }
代码本身可以工作,因为我可以将控件拖放到 Windows From 中,而无需 Visual Studio 初始化此属性。现在,因为在此控件的 Load 事件中,我调用了 Presenter 的一个在运行时为 null 的方法......我引入了这个附加代码:
public override void OnLoad(...)
{
if (this.DesignMode)
{
base.OnLoad(e);
return;
}
presenter.OnViewReady();
}
现在,每次我打开一个包含此 UserControl 的窗口时,Visual Studio 都会修改 Windows 设计器代码。所以,一旦我打开它,VS就问我是否要保存它......当然,如果我向窗口添加一个控件,它不会保留更改......只要我删除UserControl Pager 问题消失了......我应该如何以正确的方式解决这个问题?我只是不希望在设计时初始化演示者属性,因为它是在运行时注入的......