如何将数据传递给Caliburn.Micro中的视图模型

问题描述:

这可能是一个非常简单的问题,但此时我有我自己如此困惑,我看不到答案。简而言之,我有一个包含内容控件的窗口。我使用Caliburn.Micro的约定来“定位”视图。如何将数据传递给Caliburn.Micro中的视图模型

窗口看起来是这样的:

<Window x:Class="Views.MainWindowView" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <TextBox/> 
     <ContentControl x:Name="MyViewModel" Height="Auto" Background="Blue"/> 
    </Grid> 
</Window> 

视图本身被成功找到,如我所料,屏幕显示。但是,MyViewModel需要进行服务调用,以根据输入到文本框中的内容获取信息。

所以,我似乎无法弄清楚是如何将这些信息从文本框传递给视图模型。我已经想到了几个选择,但他们似乎都是太多的工作,这让我觉得我错过了一些简单的东西。

非常感谢

+0

您想将数据传递给MyViewModel吗?是否发生了一些事件? –

像你说的有一些事情可以做:

  1. 你可以在MyViewModel暴露的属性和内 MainWindowView设置。

  2. 你可以使用EventAgregator,从 MainWindowView发布事件和MyViewModel订阅该事件。

  3. 使用MEF你可以注入两个 的ViewModels之间共享资源,将其设置在MainWindowViewModel,并能够从MyViewModel访问 。

+0

感谢您的想法。关于#3,我们不使用MEF。有另外一种方法可以做到吗?说一个正常的DI工具包。 – basilard99

+0

当然,我有时会创建一个实现ISharedData的SharedData类。属性或构造函数向其他DI工具注入共享实例应该没有问题。 –

+0

http://caliburnmicro.codeplex.com/discussions/262097 –