为什么加载事件中的DataContext为null?

时间:2013-05-30 13:16:01

标签: c# wpf silverlight datacontext activator

我正在使用Activator.Createinstance来创建一个对象。我创建一个对象有两种情况。一个是在默认状态下创建对象而不关心功能。第二,它有一些要加载的属性/数据,我从XML文件中读取。 我读取了一个xml文件,并根据该文件中的内容创建一个特定对象,然后调用该对象的方法来加载属性。用户控件加载时会出现问题:datacontext在大多数情况下为空,但并非总是如此。当我创建没有要加载数据的对象时,这不会发生。

以下代码初始化对象:

Type gadgetType = Type.GetType(ObName);
IControl ctrl = (IControl)Activator.CreateInstance(gadgetType);

此代码在两种情况下都会执行。在第二种情况下执行的唯一附加代码如下。

ctrl.CreateFromXml(item);//item is xelement

并且在Control中,加载的事件就是这样。

 void Control_Loaded(object sender, RoutedEventArgs e)
    { ControlViewModel cvm = (ControlViewModel)this.DataContext; //DataContext is null }

0 个答案:

没有答案