2013-02-05 28 views
1

第一種方式,我總是前使用的最有效的方法,是在XAML中定義的設計數據:使用的設計數據

d:DataContext="{d:DesignDataSource=/DesignData/MainPivot/ProductCategoriesDesignData.xaml}" 

然而,使用MVVM光開始後,我找到了自己的路。通過ViewModelLocator:

if (ViewModelBase.IsInDesignModeStatic) 
     { 
      // Create design time view services and models 
     } 
     else 
     { 
      // Create run time view services and models 
     } 

那麼哪一個更好? (例如,不確定第二種方法是否可以從Blend訪問)

回答

1

MVVM Light最好的功能之一是它如何處理設計時數據。

這也是爲什麼我很喜歡使用設計時服務,而不是

d:DataContext="{d:DesignDataSource=/DesignData/MainPivot/ProductCategoriesDesignData.xaml}" 
  1. 你會寫更少的設計時間碼。您幾乎總是會擁有比服務更多的視圖模型。
  2. 您的viewmodels正確地使用他們的邏輯進行測試。他們調用模擬服務並按照正常情況處理數據。
  3. 模擬服務可能實際上指出了您的視圖模型中的錯誤。
  4. 從Xaml中刪除所有設計時代碼。它更清潔
+0

聽起來很有希望。我也更喜歡擁有比XAML更多的C#代碼。 –

+0

http://www.galasoft.ch/mydotnet/articles/article-2007091401.html 相當不錯的文章,希望它可以是有用的 –