2011-08-10 82 views
1

這可能是一個非常簡單的問題,但此時我有我自己如此困惑,我看不到答案。簡而言之,我有一個包含內容控件的窗口。我使用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嗎?是否發生了一些事件? –

回答

2

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

  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 –

相關問題