我有一个我已接近完成的应用程序,它使用了多个数据模板。具体来说,我有一个ListView和一个DataGrid。
我为这些项目创建了一些特殊的格式,我想预览其中一个列表项,这样我就可以调整视觉布局,着色,填充,边距等。
这可以在Visual Studio设计器中完成,还是我被迫在Xaml中手动设计这些模板,并通过运行我的应用程序进行预览?
答案 0 :(得分:2)
您可以使用设计时视图模型。
将这些属性添加到usercontrol / window:
xmlns:designTime="clr-namespace:NamespaceToYourDesignTimeViewmodel"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=designTime:DesignTimeMyViewModel, IsDesignTimeCreatable=True}"
假设您的设计时viewmodel与运行时viewmodel具有相同的结构(您可以选择使用接口强制执行);然后,您可以在设计时间视图模型中创建设计时数据,并在设计器中查看。
例如,您的设计时间视图模型可能如下所示:
public class DesignTimeMyViewModel : IMyViewModel
{
public string Name { get; set; }
public DesignTimeMyViewModel()
{
this.Name = "Design time data";
}
}
接口将强制运行时和设计时之间的结构一致性;并且设计时数据可以硬编码为您需要在VS XAML设计器中看到的任何内容。
这是一个简单的例子,但同样的原则可以扩展到复杂对象的集合。设计人员仍将以与运行时相同的方式绑定设计时数据。