我可以预览我的DataTemplate(S)在我的收藏品为基础的控制在设计师?(Can I prev

2019-10-22 05:15发布

我有,我已经接近完成的应用程序,使得使用多个数据模板。 具体来说,我有一个ListView和一个DataGrid。

我已经创造了一些特殊格式化,这些项目,我想预览这些列表项之一,这样我可以调整可视化布局,颜色,填充,边距等

这能在Visual Studio设计中完成的,还是我不得不用手在XAML来设计这些模板,并通过运行我的应用程序的预览?

Answer 1:

您可以使用设计时间视图模型。

添加这些属性的用户控件/窗口:

xmlns:designTime="clr-namespace:NamespaceToYourDesignTimeViewmodel"
         mc:Ignorable="d"
         d:DataContext="{d:DesignInstance Type=designTime:DesignTimeMyViewModel, IsDesignTimeCreatable=True}"

假设你的设计时间视图模型具有相同的结构,运行时间视图模型(你可以选择执行与接口); 那么您可以在您的设计时间视图模型创建的设计时间数据,并看到它的设计师。

例如你的设计时间视图模型可能看起来像:

public class DesignTimeMyViewModel : IMyViewModel
{
    public string Name { get; set; }

    public DesignTimeMyViewModel()
    {
        this.Name = "Design time data";
    }
}

该接口将强制运行时和设计时间结构的一致性; 和设计时间的数据可以直接被硬编码到任何你需要在VS XAML设计看。

这是一个简单的例子,但相同的原理可以扩展到复杂的对象的集合。 设计者仍然会在设计时数据绑定在相同的方式,它在运行时。



文章来源: Can I preview my DataTemplate(s) in my collection-based controls in the designer?