0

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

以下代码初始化对象:

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

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

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

在控制中,加载的事件是这样的。

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

0 回答 0