2009-08-26 27 views
3

在基於MVVM的應用程序中,我有什麼選擇可以在設計時提供ViewModel數據,所以我們的設計人員可以在Blend3(和VS 2008)中真正看到一些東西。你好嗎?我可以利用MC:可以忽略這個嗎?爲Blend和VS提供designtime ViewModel數據

回答

4

是的,Expression Blend可以幫助你做到這一點。使用「數據」選項卡創建與生產數據具有相同形狀的樣本數據。在創建數據源時,請確保取消選中「在應用程序運行時啓用示例數據」。

Sample Data http://www.smips.com/brad/stackoverflow/design-model1.jpg

您已經創建了樣本數據後,設置頁面的DataContext的在XAML樣本數據。這將讓設計師在Blend中打開頁面時看到示例數據。

<navigation:Page DataContext={StaticResource MyFakeDesignData} 

在加載處理程序的代碼中,編寫代碼以將DataContext設置爲真實模型。由於此代碼只會在應用程序運行時運行,並且您已告知示例數據在應用程序運行時不可用,這意味着正在運行的應用程序將獲得真實數據。

private void Home_Loaded(object sender, RoutedEventArgs e) 
{ 
    DataContext = new MyRealViewModel(); 
} 
3

使用VS2010,您可以使用Design-Time attributes(適用於SL和WPF)。我通常有一個模擬數據源反正所以它只是一個的事情:

  • 添加空間聲明

    的xmlns:d =「http://schemas.microsoft.com/expression/blend/ 2008"

  • 添加到窗口/控制資源

    <UserControl.Resources> <的ViewModels模擬數據上下文:MockXViewModel X:鍵=「DesignViewModel 「/ > </UserControl.Resources>

  • 設定的設計時數據上下文

    <網格d:的DataContext =」{綁定源= {StaticResource的DesignViewModel}}」 > ...

工作得不錯。