如何防止用户控件被初始化?我想自己初始化,不是在InitializeComponent()的构造函数中;?
问问题
2411 次
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 移到那里,也不要忘记创建一个私有字段以确保您不会初始化两次。
private bool _isInitialized;
public void InititializeControl()
{
if(_isInitialized) return;
_isInitialized = true;
InitializeComponent();
}
然后在必要的时候调用它..
于 2012-04-17T19:34:36.060 回答