在Visual Studio中,ResourceDictionary中DataTemplate的设计视图

16

有没有一种方法可以预览DataTemplate中的GUI呢?例如,如果我有一个包含DataTemplate的资源字典,并且DataTemplate包含GUI代码,例如


Is there a way to preview GUI in a DataTemplate? e.g. if I have a Resource Dictionary, containing a DataTemplate, and the Data template contains GUI code, like
<DataTemplate x:Key="MyTemplate">
    <StackPanel>
        <TextBox Text="AAA"/>
    </StackPanel>
</DataTemplate>

我能单独查看StackPanel吗?(就像在设计视图中预览UserControl一样)。如果原版VS不能做到,那是否有插件可以实现?


3
Expression Blend可以做到这一点。但是我不知道Visual Studio是否有任何可视化DataTemplate的工具。 - Jehof
1
除非你想将StackPanel复制到一个空的UserControl中,并使用VS设计视图编辑器进行编辑,然后再将其复制回DataTemplate,否则你应该像@Jehof所说的那样使用Expression Blend。在某些情况下,当我不想使用Blend时,我自己也会这样做。 - Hannish
对于像我这样不喜欢使用Expression Blend的人来说,这将是Visual Studio 2013中一个很好的功能。另一种方法是创建一个单独的XAML文件,其中包含DataTemplate(无需创建UserControl),然后在ResourceDictionary中链接您的XAML文件。 - Theodore Zographos
1
@TheodoreZographos,如何特别做到这一点。这正是我正在寻找的。 - v.g.
2个回答

20

Visual Studio不支持此操作,但Expression Blend可以,如果您可以访问它。以下是有关几种编辑模板资源的方法的说明:

http://msdn.microsoft.com/en-us/library/cc294908(v=expression.40).aspx

特别是,如果您想编辑位于ResourceDictionary中的DataTemplate,则应执行以下操作:

  • 在Blend中加载项目
  • 在“资源”面板(默认情况下停靠在右侧)中找到包含ResourceDictionary的.xaml文件
  • 在资源列表(按键)中查找DataTemplate
  • 单击“编辑资源”

我知道这是一个老问题,但希望这可以帮助!


这不适用于针对Windows 10秋季创作者更新和可能早期版本的项目。 - binaryfunt

1
如果您在控件的正文中引用模板,例如ItemTemplate="{StaticResource MyTemplate}",则可以将光标放在模板名称上并按F12,以便Visual Studio在XAML设计器中呈现模板。
由于某种原因,这只能工作一次。您必须关闭并重新打开表单才能看到另一个模板呈现。肯定有一些方法可以避免这种情况,但我还没有想出来。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接