【发布时间】:2013-10-23 02:21:51
【问题描述】:
我在 WPF 中有一个在 XAML 中作为视图控件引用的类:
<ctrl:MyController x:Key="Controller"/>
我现在可以将其作为静态资源访问,一切都很好:
Command="{Binding Source={StaticResource Controller}, Path=HistoryFutureRetrieveLeft,
Mode=OneTime}">
但是我现在需要使用 IOC 容器创建控制器。我可以用以下代码做到这一点:
Resources.Add("Controller", App.IocContainer.Resolve<MyController>());
但我必须从 XAML 中删除该行:
<ctrl:MyController x:Key="Controller"/>
这在运行时不是问题,但在尝试编辑 XAML 时确实会导致问题,因为所有绑定现在都显示“找不到资源控制器”。有没有什么办法可以让 IOC 容器在运行时创建控制器,但在 XAML 文件中为 VS 设计器定义控制器?
【问题讨论】:
-
在设计器中工作时将
Controller声明保留在 XAML 中,并在运行时将其注释掉?
标签: c# wpf xaml inversion-of-control