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 移到那里,也不要忘记创建一个私有字段以确保您不会初始化两次。

private bool _isInitialized;

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

    _isInitialized = true;
    InitializeComponent();

} 

然后在必要的时候调用它..

于 2012-04-17T19:34:36.060 回答