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了!

你可能感兴趣的:(DevExpress)