将 Castle.Windsor 与 MVVMLight Toolkit 结合使用的实际示例

发布于 2024-11-02 07:25:35 字数 590 浏览 1 评论 0原文

我确实尝试过,但找不到将 Castle IOC 与 MVVMLight 结合使用的良好工作示例。任何有关动态生成 ViewModelBase 视图模型的指导都将受到赞赏。我正在尝试使用构造函数注入将视图模型与数据源关联起来,例如:

public class MainViewModel : ViewModelBase
{
    ...
    public MainViewModel( ISomeSortofDataRepsoitory mysomesortofdata)
    myrepo = mysomesortofdata;   /// data items in an observable collection
}

并且我希望 ViewModelLocator 执行以下操作:

public static void CreateMain()
{
     if (_main == null)
     {
         ...
         _main = ioc.Resolve<MainViewModel>();
         ...
     }
}

唉,没有骰子。有工作示例吗?

I have really tried but I cannot find a good working example of using the Castle IOC with MVVMLight. Any sort of guidance in the way to dynamically generate ViewModelBase viewmodels would be appreciated. I am trying to use Constructor Injection to associate the viewmodel with a data source, something like:

public class MainViewModel : ViewModelBase
{
    ...
    public MainViewModel( ISomeSortofDataRepsoitory mysomesortofdata)
    myrepo = mysomesortofdata;   /// data items in an observable collection
}

and I want the ViewModelLocator to do something like:

public static void CreateMain()
{
     if (_main == null)
     {
         ...
         _main = ioc.Resolve<MainViewModel>();
         ...
     }
}

alas, no dice. Any working examples?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我不会写诗 2024-11-09 07:25:35

您需要从 NuGet 安装 CommonServiceLocator.WindsorAdapter 包。然后在您的 ViewModelLocator ctor 中

var container = new WindsorContainer();
ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(container));

完全删除 ViewModelLocator 类,并将所有 Castle Windsor 配置放入

override void OnStartup(StartupEventArgs e)

App.xaml.cs 中

You need to install the CommonServiceLocator.WindsorAdapter package from NuGet. Then in your ViewModelLocator ctor

var container = new WindsorContainer();
ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(container));

OR

Delete the ViewModelLocator class altogether, and put all your Castle Windsor configuration in

override void OnStartup(StartupEventArgs e)

in App.xaml.cs

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文