如何在WinRT中定义XAML DesignData

时间:2014-12-04 11:39:44

标签: c# xaml winrt-xaml

我正在使用Windows 8.1应用程序。

我有Page

<Page d:DataContext="{d:DesignData /SampleData/MySampleData.xaml}" 
      x:Class="xxx.MyView"
      ...>
   <TextBlock Text="{Binding MyString}"/>
   <TextBlock Text="{Binding StartTime}"/>
</Page>

然后我有MySampleData.xaml

<local:MyViewModel
 ...
 xmlns:local="using:xxx.ViewModels" 
 MyString="my text"
 StartTime="2014/01/01"/>

MyViewModel.cs我有:

public class MyViewModel
{
    public string MyString {get; set;}
    public DateTime StartTime {get; set;}
}

在设计器中它正确显示,但在编译时,我在MySampleData.xaml

中收到此错误
  

无法指定文字值&#39; 2014/01/01&#39;进入财产&#39; StartTime&#39;类型&#39;日期时间&#39;

MyString的部分完美无缺,但StartTime没有(它在Windows 8.0中有效),任何想法如何让它工作?为什么要尝试编译设计数据?

其他资源

根据this question,原因是因为WinRT不支持TypeConverters

我看到this question,它建议您创建一个假类,但我真的想在XAML中创建它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我创建了这个类:

public class Jerry
{
    public DateTime SampleDateTime { get; set; }
}

并且,使用Blend,它创建了这个示例数据:

<App47:Jerry xmlns:App47="using:App47" 
    xmlns:System="using:System" 
    SampleDateTime="12/11/2014 17:00:25" />

基于此,我认为你只需要包含时间字符串。

祝你好运!