WPF Devexpress GridControl Value与Display转换

直入主题吧!开发中往往需要将代码转换成中文显示在表格中。

如下图

下面就直接贴代码了.

C#代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data;

namespace WpfApplication1
{
    /// <summary>
    /// Window4.xaml 的交互逻辑
    /// </summary>
    public partial class Window4 : Window
    {

        public static List<Areas> Data
        {
            get { return Areas.getgg(); }
        }


        public Window4()
        {
            InitializeComponent();
            gridcontrol.ItemsSource = NwindData.DataPerson;
        }

    }


    public class NwindData
    {

        public static DataTable DataPerson
        {
            get { return setPerson(); }
        }

        private static DataTable setPerson()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("id",Type.GetType("System.Int32"));
            dt.Columns.Add("username", Type.GetType("System.String"));
            dt.Columns.Add("areaid", Type.GetType("System.Int32"));  //这里的类型一定要和Area中的Areaid类型一致不然就显示不中文
            DataRow row = dt.Rows.Add();
            
            row[0] = "1";
            row[1] = "张三";
            row[2] = "20";

            row = dt.Rows.Add();
            row[0] = "2";
            row[1] = "李四";
            row[2] = "10";return dt;
        }

    }

    public class Areas
    {
        int areaid;

        public int Areaid
        {
            get { return areaid; }
            set { areaid = value; }
        }
        string areaName;

        public string AreaName
        {
            get { return areaName; }
            set { areaName = value; }
        }
        public Areas(int areaid, string areaname)
        {
            this.areaid = areaid;
            this.areaName = areaname;
        }

        public static List<Areas> getgg()
        {
            List<Areas> list = new List<Areas>();
            list.Add(new Areas(10,"中国"));
            list.Add(new Areas(20,"美国"));
            return list;

        }
    }
}

XAML代码

<Window xmlns:my="clr-namespace:WpfApplication1"  x:Class="WpfApplication1.Window4"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
        xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
        xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
        xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
        xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
        xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
        xmlns:dxdo="http://schemas.devexpress.com/winfx/2008/xaml/docking">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="40"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            <dxg:GridControl Name="gridcontrol" >
                <dxg:GridControl.Columns>
                    <dxg:GridColumn FieldName="id"  MinWidth="100" Header="ID"/>
                    <dxg:GridColumn FieldName="username"  MinWidth="100" Header="姓名"/>
                    <dxg:GridColumn FieldName="areaid"  MinWidth="100" Header="地区ID"/>
                    <dxg:GridColumn FieldName="areaid" 
                                EditSettings="{dxe:ComboBoxSettings DisplayMember=AreaName, ValueMember=Areaid, ItemsSource={x:Static my:Window4.Data}}" />
                </dxg:GridControl.Columns>
                <dxg:GridControl.View>
                    <dxg:TableView ShowGroupPanel="False" Name="ds" />
                </dxg:GridControl.View>
            </dxg:GridControl>
        </Grid>        
    </Grid>
</Window>

到这里就ok了!

原文地址:https://www.cnblogs.com/bpdwn/p/3645614.html