1

我一直在观看TechDays 2010 了解 MVVM,有一次他谈到了混合和创建示例数据,但他没有在混合中生成它,而是在 C# 代码中制作数据。

我想知道您是否创建示例数据(来自示例类、新示例数据等)是否将其保存在项目中的某个位置(即我将我的项目提供给其他人,当他们加载项目时,他们会看到相同的数据吗? )? 您可以轻松地从样本数据和实时数据切换吗?

4

1 回答 1

2

示例数据只是一个定义对象图的xaml不仅仅是 xml)文件,该文件标有构建类型DesignDataDesignDataWithDesignTimeCreatableTypes。MSDN 上的文档很少,但有关其在 Silverlight 设计器中的使用的文档在 2012 年的任何 xaml 设计器中基本相同。

使用这些类型的样本时没有“实时数据”。所有值都在 xaml 文件中设置。您不能更改设计器中特定文本框的数据。您也不能轻松地在不同样本之间切换。

有两种方法可以创建示例数据——您可以手动构建它(如果您知道您的类型并且您喜欢编写 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 回答