【发布时间】:2011-12-29 12:39:24
【问题描述】:
我创建了一个 UserControl,它使用 [Import] 属性导入多个部分。
public class MyUserControl : UserControl, IPartImportsSatisfiedNotification
{
[Import]
public IService Service { get; set; }
public MyUserControl()
{
}
public void OnImportsSatisfied()
{
// Do something with Service.
}
}
这个 UserControl 是从 XAML 实例化的,因此它的导入没有得到满足,OnImportsSatisfied 也没有被调用。
<local:MyUserControl />
我的问题是当我的类在 XAML 中创建时,我如何才能满足它的导入。
【问题讨论】:
-
这可能很难做到,因为 WPF 通常会卸载不可见的控件,因此该控件可能只存在一次,但可能会多次加载和卸载。
-
@Rachel 为了防止这种情况,他可以使用延迟加载。
-
您确定这是正确的做法吗?这看起来像您正在尝试将业务逻辑放入 UI 控件中。这总是坏事。
-
@Euphoric 我同意,逻辑应该在 MyUserControl 的 ViewModel 中。尽管如此,问题仍然存在。