1. 功能解释

所有 d: 数据仅由 XAML 设计器使用,无可忽略的命名空间值编译到应用程序中。

 

2. 使用此功能的前置条件

  • 16.7 或更高版本。

  • 如果已启用“适用于 .NET Framework 的新版 WPF XAML 设计器”预览功能,则此功能还可用于 .NET Framework。

  • 16.8 预览版本现已提供对第三方控件的支持。

 

3. 设计时数据基本信息

首先,将以下代码行添加到 XAML 文档的标头(如果这些代码行尚不存在):

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"

 

添加命名空间后,可将 d: 置于任何属性之前,使其仅在 XAML 设计器中显示,而不在运行时显示。

例如,可将文本添加到通常绑定了数据的 TextBlock。

<TextBox
    d:Text="解锁成就"
    Text="{x:Bind Name, Mode=OneWay}"/>

UWP 在XAML设计器中使用设计时数据

 

 

 

在此情况下,TextBlock 在运行时将具有实际数据。

 

即将其添加到控件本身。

        <d:TextBox
           Text="20 - 起床 (1/1)"/>

 

UWP 在XAML设计器中使用设计时数据

 

 UWP 在XAML设计器中使用设计时数据

 

 

 

在运行时期间,所有 d: 特性和控件都将被忽略。

 

4. 在设计时预览图象

然后,可在设计时在 XAML 设计器中显示该图像:

<Image Source={Binding ProfilePicture} d:Source="DesignTimePicture.jpg" />

 

5. ListView的设计时数据


        <ListView ItemsSource="{Binding Items}" VerticalAlignment="Bottom">
            <d:ListView.Items>
                <ListViewItem>One</ListViewItem>
                <ListViewItem>Two</ListViewItem>
                <ListViewItem>Three</ListViewItem>
            </d:ListView.Items>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding ItemName}" d:Text="{Binding .}" />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

 

 

 

上一个示例显示了在 XAML 设计器中具有三个 TextBlock 的 ListView。

例如,可将 City 数据对象的公共属性构建为设计时数据。

public class City
    {
        public string Name { get; set; }
        public string Country { get; set; }
    }
        <ListView ItemsSource="{Binding Items}" VerticalAlignment="Bottom">
            <d:ListView.Items>
                <local:City Name="NewYork" Country="America"/>
                <local:City Name="Tokyo" Country="Japan"/>
                <local:City Name="Guangzhou" Country="China"/>
            </d:ListView.Items>
            <ListView.ItemTemplate>
                <DataTemplate x:DataType="local:City">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Name}" Margin="0,0,10,0" />
                        <TextBlock Text="{Binding Country}" />
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

UWP 在XAML设计器中使用设计时数据

 

 

这样做的好处是,你可将控件绑定到模型的设计时静态版本。

 

本项目演示用的Xbox示例,已经托管到Github,https://github.com/hupo376787/XboxAchievements

 

 

参考:https://docs.microsoft.com/zh-cn/visualstudio/xaml-tools/xaml-designtime-data?view=vs-2019

相关文章:

  • 2021-12-04
  • 2022-12-23
  • 2021-09-28
  • 2021-05-12
  • 2021-06-15
  • 2021-04-04
  • 2022-12-23
猜你喜欢
  • 2021-09-11
  • 2022-12-23
  • 2021-10-04
  • 2021-09-30
  • 2021-09-19
  • 2021-09-24
  • 2021-06-04
相关资源
相似解决方案