1

私はTechDays 2010 Understanding MVVMを見ていましたが、ある時点で彼はブレンドとサンプル データの作成について話しましたが、ブレンドでデータを生成する代わりに、C# コードでデータを作成しました。

サンプル データ (サンプル クラス、新しいサンプル データなどから) を作成してプロジェクトのどこかに保存するかどうか疑問に思っています (つまり、私のプロジェクトを他の誰かに渡すと、プロジェクトをロードしたときに同じデータがブレンドされて表示されますか?) )? サンプルデータとライブデータを簡単に切り替えることができますか?

4

1 に答える 1

2

サンプルデータは、ビルドタイプDesignDataまたはDesignDataWithDesignTimeCreatableTypesでマークされたオブジェクトグラフを定義するxamlxmlだけでなく)ファイルです。ドキュメントはMSDNでまばらですが、Silverlightデザイナーでの使用に関するこのドキュメントは、2012年のどのxamlデザイナーでも基本的に同じです。

これらのタイプのサンプルを使用する場合、「ライブデータ」はありません。すべての値はxamlファイルに設定されています。たとえば、デザイナ内の特定のテキストボックスのデータを変更することはできません。また、異なるサンプルを簡単に切り替えることもできません。

サンプルデータを作成するには、2つの方法があります。手動で作成する方法(タイプがわかっていて、xamlの記述に慣れている場合)、または単純なコンソールアプリケーションを起動し、オブジェクトグラフを作成してから、XamlServicesクラスを使用して、グラフを文字列にシリアル化します(または、代わりにストリームにドロップするように書き直します)。記述どおりに機能する場合と機能しない場合があるC#擬似コードを次に示します。

public string Serialize(object toSerialize)
{
    var sb = new StringBuilder();
    var writer = XmlWriter.Create(sb);
    XamlServices.Save(writer, toSerialize);
    writer.Flush();
    writer.Close();
    return sb.ToString();
}

新しいファイルを作成し、それに.xaml拡張子を付け、そのファイルに結果をドロップしてソリューションに保存し、そのビルドアクションをDesignData(デザイナーがタイプの構造をモックする)またはDesignTimeDataWithDesignTimeCreatableTypes(後者の場合)に設定するだけです。グラフはXamlServicesで逆シリアル化でき、デザイナーなどで使用されたときに例外をスローしません)。

于 2013-02-20T20:39:47.903 に答える