3

MVVMベースのアプリケーションでは、設計時にViewModelデータを提供するためにどのようなオプションが必要ですか。これにより、設計者は実際にBlend3(およびVS 2008)で何かを見ることができます。これはどうですか?どういうわけかこれにmc:ignorableを利用できますか?

4

2 に答える 2

4

はい、ExpressionBlendはこれを支援します。[データ]タブを使用して、本番データと同じ形状のサンプルデータを作成します。データソースを作成するときは、必ず「アプリケーションの実行時にサンプルデータを有効にする」のチェックを外してください。

サンプルデータhttp://www.smips.com/brad/stackoverflow/design-model1.jpg

サンプルデータを作成したら、ページのDataContextをXAMLのサンプルデータに設定します。これにより、デザイナーはBlendでページを開いたときにサンプルデータを見ることができます。

<navigation:Page DataContext={StaticResource MyFakeDesignData}

Loadedハンドラーのコードで、DataContextを実際のモデルに設定するコードを記述します。このコードはアプリの実行中にのみ実行され、アプリの実行中はサンプルデータを利用できないように指定しているため、これは実行中のアプリが実際のデータを取得することを意味します。

private void Home_Loaded(object sender, RoutedEventArgs e)
{
    DataContext = new MyRealViewModel();
}
于 2009-08-26T18:17:49.450 に答える
3

VS2010を使用すると、デザイン時属性を使用できます(SLとWPFの両方で機能します)。私は通常、とにかく模擬データソースを持っているので、それはただの問題です:

  • 名前空間宣言の追加

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

  • 模擬データコンテキストをウィンドウ/コントロールリソースに追加する

    <UserControl.Resources> <ViewModels:MockXViewModel x:Key = "DesignViewModel" /> </UserControl.Resources>

  • 設計時データコンテキストの設定

    <Grid d:DataContext = "{Binding Source = {StaticResourceDesignViewModel}}">..。

十分に機能します。

于 2011-03-20T12:31:03.957 に答える