c# - 我如何使用 DesignData 来帮助开发 Metro 应用程序?

标签 c# xaml windows-8 microsoft-metro expression-blend

我一直在 Windows Phone 应用程序中愉快地使用 DesignData,我希望用它来帮助在 VS2012/Blend for VS 中的 Metro 风格应用程序中可视化设计。

我已经尝试了很明显的方法:

<common:LayoutAwarePage
x:Name="pageRoot"
x:Class="MyRootNamespace.Views.EventView"
DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
IsTabStop="false"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyRootNamespace.Views"
xmlns:common="using:MyRootNamespace.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:bm="using:Bing.Maps"
d:DataContext="{d:DesignData Source=../SampleData/SpecialEventSampleData.xaml}"
mc:Ignorable="d">

SpecialEventSampleData.xaml 大致如下:

<local:SpecialEvent 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"       
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyRootNamespace.ViewModels" 
EventName="Foo Fighters" 
Description="This exclusive April Fools Gig will see Dave Grohl and the rest of the Foo Fighters rock out at this exclusive made up gig" 
VenueName="Village Hall" 
/>

它引用的类有一个公共(public)的、无参数的构造函数,但 Visual Studio 给出了一个错误:

Error Cannot create an instance of "SpecialEvent". C:...\MyRootNamespace.Windows\SampleData\SpecialEventSampleData.xaml

此外,我希望必须将构建操作设置为“DesignData”或类似的操作,但这似乎不是 Visual Studio 2012 中的一个选项?

我需要做什么才能获得 design time data在 VS2012/Blend 中工作?

最佳答案

SpecialEvent 是您的 ViewModel 吗?如果是这样,您能否在您的 XAML 中执行类似的操作(在您的 common:LayoutAwarePage 打开声明之后)?

<d:Page.DataContext>
    <local:SpecialEvent>
</d:Page.DataContext>

然后从您的 common:LayoutAwarePage 中删除这一行:

d:DataContext="{d:DesignData Source=../SampleData/SpecialEventSampleData.xaml}" 

我有与此类似的有效代码。

关于c# - 我如何使用 DesignData 来帮助开发 Metro 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11638437/

相关文章:

c# - 在 'code behind' 中设置的 WPF 控件属性,之后忽略绑定(bind)

html - Windows 8 商店应用程序 HTML-Javascript 开发音乐播放器应用程序以播放本地音乐文件

xml - 从 Windows 8 商店检索应用程序数据

delphi - 为什么屏幕返回的分辨率低于我的 Windows 8 平板电脑设置的分辨率?

c# - .NET 中的热图样式渐变

c# - 如何使用选定字段将 IEnumerable 转换为匿名类型

c# - 在 Unity3d 中导入数学时出错

c# - wpf如何删除矩形(角)线形式边框

c# - 使用 Oxyplot 和 Xamarin 的堆积柱形图

c# - 在 Visual Studio 设计器中为控件指定双击事件