logo Devexpress WPF控件文档中心

第2课 - 显示和编辑数据


本教程演示了如何在GridControl中显示和编辑数据。本教程以第1课添加Grid控件为基础。

创建列
在GridControl中显式添加列,以访问每个列的单独设置。
设计时间
调用GridControl的智能标签,点击生成列。

运行时
创建GridColumn对象,并指定其ColumnBase.FieldName和ColumnBase.IsSmart属性。

MainXaml.xml文件


<dxg:GridControl ItemsSource="{Binding Orders}">
    <dxg:GridControl.View>
        <dxg:TableView ShowTotalSummary="True" 
                       AutoWidth="True" 
                       BestFitModeOnSourceChange="VisibleRows"/>
    </dxg:GridControl.View>
    ...
</dxg:GridControl>


更改栏位布局
将列装入GridControl,并设置所有列的最佳宽度以完全显示其内容:
将TableView.AutoWidth属性设置为true,以使列适合GridControl。
将TableView.BestFitModeOnSourceChange属性设置为VisibleRows,以计算所有列的最佳宽度。


<dxg:GridControl ItemsSource="{Binding Orders}">
    <dxg:GridControl.View>
        <dxg:TableView ShowTotalSummary="True" 
                       AutoWidth="True" 
                       BestFitModeOnSourceChange="VisibleRows"/>
    </dxg:GridControl.View>
    ...
</dxg:GridControl>


指定一个原位编辑器
GridControl使用就地编辑器来编辑单元格值。编辑器的类型取决于列的内容。CheckEdit用于布尔值,DateEdit用于日期,TextEdit用于字符串和数字。您也可以定义一个自定义编辑器(例如,ComboBoxEdit)。
在ViewModel.cs中添加一个Shippers集合


using DevExpress.Mvvm;
using System.Collections.ObjectModel;
using System.Data.Entity;

namespace WPFBlankAppWithDatabase {
    public class ViewModel : ViewModelBase {

        NorthwindEntities northwindDBContext;
        public ViewModel() {
            if (IsInDesignMode) {
                Orders = new ObservableCollection();
                Shippers = new ObservableCollection();
            } 
            else {
                northwindDBContext = new NorthwindEntities();

                northwindDBContext.Orders.Load();
                Orders = northwindDBContext.Orders.Local;

                northwindDBContext.Shippers.Load();
                Shippers = northwindDBContext.Shippers.Local;
            }
        }
        public ObservableCollectionOrders {
            get => GetValue();
            private set => SetValue(value);
        }
        public ObservableCollectionShippers {
            get => GetValue();
            private set => SetValue(value);
        }
    }
}
设计运行时
1. 构建解决方案,使Shippers集合在列的智能标签菜单中可见。
2. 调用Ship Via列的智能标签菜单并选择ComboBoxEditSettings。


3. 设置Shippers集合为ComboBoxEdit的ItemsSource。

4.将 DisplayMember 属性设置为 CompanyName,将 ValueMember 属性设置为 ShipperID。

运行时
将xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors "命名空间添加到ThemedWindow中。
创建ComboBoxEdit对象并将其分配给Ship Via列的ColumnBase.EditSettings属性。
指定ItemsSource属性以将ComboBoxEdit绑定到数据。
将DisplayMember属性设置为CompanyName,将ValueMember属性设置为ShipperID。


<dxg:GridColumn FieldName="Freight" IsSmart="True">
    <dxg:GridColumn.EditSettings>
        <dxe:TextEditSettings Mask="c" MaskType="Numeric"            
                              MaskUseAsDisplayFormat="True"/>
    </dxg:GridColumn.EditSettings>
</dxg:GridColumn>


在线咨询
联系我们

客服热线
023-68661681

QQ客服

意见反馈


添加微信获专业服务

TOP