我一直在观看TechDays 2010 Understanding MVVM,有一次他谈论混合和创建样本数据,但是他没有使用混合生成数据,而是使用C#代码制作数据。
我想知道您是否创建示例数据(来自示例类,新示例数据等)是否将其保存在项目中的某个位置(即我将我的项目交给其他人,当他们加载项目时他们会看到相同的数据吗? )?您可以轻松地从样本数据和实时数据切换吗?
最佳答案
样本数据只是一个 xaml (不仅是xml)文件,它定义了您的对象图,并用构建类型 DesignData 或 DesignDataWithDesignTimeWithableabless 标记了该对象图。这些文档在MSDN上很少,但是this document关于它在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反序列化,在设计器中使用时不会引发任何异常等)。
关于mvvm - 在混合表达式中创建样本数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14987348/