WPF Property Grid控件使用属性定义定义如何做和显示
本教程示范如何绑定WP Property Grid控件到数据和创建属性定义。
执行如下步骤
第一步-创建属性定义
添加PropertyGridControl组件到项目。
打开工具箱在vs,定位到DX.23.1: Data 面板,选择PropertyGridControl工具箱选项,拖动到窗口。
右键点击Property Grid选择Layout | Reset All填充全部窗口:

第二步-创建数据对象
创建数据对象和设置到DataContext
- namespace Creating_Definitions {
- public partial class MainWindow : Window {
- public MainWindow() {
- InitializeComponent();
- DataContext = new Customer() {
- ID = 1,
- FirstName = "Nancy",
- LastName = "Davolio",
- Gender = Gender.Female,
- BirthDate = new DateTime(1948, 8, 12),
- Phone = "7138638137"
- };
- }
- public class Customer {
- public int ID { get; set; }
- public string FirstName { get; set; }
- public string LastName { get; set; }
- public Gender Gender { get; set; }
- public DateTime BirthDate { get; set; }
- public string Phone { get; set; }
- }
- public enum Gender { Male, Female }
- }
- }
第三步-绑定Property Grid到Data Object
使用property grid PropertyGridControl.SelectedObject 属性绑定数据
- <Window
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:dxprg="http://schemas.devexpress.com/winfx/2008/xaml/propertygrid" x:Class="PG_lesson1.MainWindow"
- Title="MainWindow" Height="250" Width="525">
- <Grid>
-
- <dxprg:PropertyGridControl SelectedObject="{Binding}" />
-
- Grid>
- Window>
步骤四-创建属性定义
添加属性定义到Property Grid.设置PropertyGridControl.ShowProperties属性ShowPropertiesMode.WithPropertyDefinitions,隐藏未定义属性:
- <Window
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:sys="clr-namespace:System;assembly=mscorlib"
- xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
- xmlns:dxprg="http://schemas.devexpress.com/winfx/2008/xaml/propertygrid" x:Class="PG_lesson1.MainWindow"
- Title="MainWindow" Height="250" Width="525">
- <Grid>
-
- <dxprg:PropertyGridControl SelectedObject="{Binding}" ShowProperties="WithPropertyDefinitions" >
- <dxprg:PropertyDefinition Type="sys:String" />
- <dxprg:PropertyDefinition Path="Gender" />
- <dxprg:PropertyDefinition Path="BirthDate" />
- dxprg:PropertyGridControl>
-
- Grid>
- Window>
运行程序看到结果
