Wpf 我可以在设计器中的基于集合的控件中预览数据模板吗?

Wpf 我可以在设计器中的基于集合的控件中预览数据模板吗?,wpf,visual-studio,xaml,visual-studio-2013,visual-studio-designer,Wpf,Visual Studio,Xaml,Visual Studio 2013,Visual Studio Designer,我有一个即将完成的应用程序,它使用了多个数据模板。具体来说,我有一个ListView和一个DataGrid 我已经为这些项目创建了一些特殊的格式,我想预览其中一个列表项目,这样我就可以调整视觉布局、颜色、填充、边距等 这可以在Visual Studio designer中完成吗?还是我必须用Xaml手工设计这些模板,并通过运行应用程序进行预览?您可以使用设计时视图模型 将以下属性添加到usercontrol/窗口: xmlns:designTime="clr-namespace:Namespac

我有一个即将完成的应用程序,它使用了多个数据模板。具体来说,我有一个ListView和一个DataGrid

我已经为这些项目创建了一些特殊的格式,我想预览其中一个列表项目,这样我就可以调整视觉布局、颜色、填充、边距等


这可以在Visual Studio designer中完成吗?还是我必须用Xaml手工设计这些模板,并通过运行应用程序进行预览?

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

将以下属性添加到usercontrol/窗口:

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设计器中看到的任何内容


这是一个简单的示例,但同样的原则也可以扩展到复杂对象的集合。设计器仍将以与运行时相同的方式绑定设计时数据。

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

将以下属性添加到usercontrol/窗口:

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设计器中看到的任何内容

这是一个简单的示例,但同样的原则也可以扩展到复杂对象的集合。设计器仍将以与运行时相同的方式绑定设计时数据。

使用blend。使用混合。