某些数据依赖控件(例如 ListView, ListBox和 DataGrid)很难在没有数据的情况下进行可视化。 在本文中,我们将回顾一种新方法,允许使用 Visual Studio 中的 XAML 设计器处理 Windows Presentation Foundation (WPF) .NET Core 项目或 WPF .NET Framework 项目的开发人员启用这些控件中的示例数据。
要求
示例数据功能需要 Visual Studio 2019 版本 16.10 或更高版本。 此功能支持使用新设计器时面向 .NET Core 或 .NET Framework 的 WPF 的 Windows 桌面项目。
示例数据功能的基础知识
示例数据功能仅适用于设计时可视化效果。 它仅在 XAML 设计器中显示,而不会出现在正在运行的应用中。 因此,它应用于属性ItemsSource的设计时版本d:ItemsSource。
示例数据需要设计时命名空间才能正常工作。
注释
若要详细了解 XAML 中的设计时属性,请参阅 XAML 设计时属性。
若要开始,请将以下代码行添加到 XAML 文档的标头(如果它们尚不存在):
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
添加命名空间后,可以使用d:ItemsSource="{d:SampleData}"该命名空间在或ListViewListbox控件中DataGrid启用示例数据。 例如:
<DataGrid d:ItemsSource="{d:SampleData}"/>
在此示例中,如果没有 d:ItemsSource="{d:SampleData}",XAML 设计器将显示一个空的数据网格。 相反, d:SampleData它现在会显示生成的默认示例数据。
默认情况下,将显示五个项目。 但是,可以使用该 ItemCount 属性指定要显示的项数。 例如: d:ItemsSource="{d:SampleData ItemCount=2}"。
使用数据模板的示例数据
使用数据模板时,示例数据功能适用于ListBox或ListViewDataGrid控件。 该功能将分析 DataTemplate 控件,并尝试为其生成适当的数据。
仅针对使用绑定的数据模板中的元素生成示例数据。 即使绑定还没有源,也会生成示例数据。 例如:
<ListView d:ItemsSource="{d:SampleData ItemCount=3}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Width="50" Source="{Binding ProfilePicture}"/>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding FirstName}" Margin="5"/>
<Label Content="{Binding LastName}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
使用建议的作的示例数据
若要从设计器中轻松启用或禁用控件的示例数据,可以使用“建议的作”功能。 建议的作是设计器上的灯泡,在选择控件时显示在右上角。 可以通过选择控件、选择灯泡,然后选择 “显示示例数据”来启用示例数据。 例如:
使用 IValueConverter 接口的示例数据
示例数据功能不完全支持转换器或 IValueConverter 接口。 但是,可以通过执行以下作之一或两项来使其正常工作:
- 确保
Convert函数可以处理值已是目标类型的方案。 - 实现将
ConvertBack值转换回原始类型的函数。
Troubleshooting
如果示例数据未显示任何内容或无法显示正确的类型,可以尝试刷新设计器或关闭并重新打开页面。
如果遇到本部分中未列出的问题,或者刷新页面无法修复的问题,请使用 “报告问题 ”工具告知我们。