如何在 WinRT 中定义 XAML 设计数据

本文关键字:XAML 数据 定义 WinRT | 更新日期: 2023-09-27 18:33:15

我正在开发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中收到此错误:

无法将文本值"2014/01/01"分配给类型为"日期时间"的属性"开始时间">

MyString的部分运行良好,但StartTime没有(在 Windows 8.0 中确实如此(,知道如何让它工作吗?为什么它试图编译设计数据?

其他资源

根据这个问题,原因是因为WinRT不支持TypeConverters

我看到了这个问题,它建议你创建一个假类,但我真的很想在 XAML 中做到这一点。

有什么想法吗?

如何在 WinRT 中定义 XAML 设计数据

我创建了这个类:

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" />

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

祝你好运!