首页 > 其他分享 >DevExpress WPF中文教程:Grid - 如何完成列和编辑器配置(设计时)?

DevExpress WPF中文教程:Grid - 如何完成列和编辑器配置(设计时)?

时间:2024-06-13 10:01:41浏览次数:12  
标签:Mvvm DevExpress 编辑器 Shippers Grid WPF GridControl

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

本教程将演示如何调整网格列布局、指定单元格编辑器和设置显示值的格式。(注意本文是基于上文的基础上演变的,点击这里可回顾>>

DevExpress WPF中文教程图集

获取DevExpress WPF v23.2正式版下载

DevExpress技术交流群10:532598169      欢迎一起进群讨论

选择要显示的列

如果AutoGenerateColumns属性设置为AddNew,DevExpress WPF GridControl将为绑定数据源中的所有字段生成列。向GridControl显式添加列来仅显示指定的列和每个列的访问设置,为此单击GridControl Quick Actions菜单中的Generate Columns项:

DevExpress WPF中文教程图集

上文中,我们使用了项目源向导,此向导为包含值的所有数据源字段生成列,按照以下步骤删除不必要的列:

DevExpress WPF中文教程图集

1. 选择一个列。

2. 单击Delete键或单击列的Quick Actions菜单中的Delete按钮,从GridControl中删除该列:

DevExpress WPF中文教程图集

3. 选择GridControl并调用其Quick Actions菜单。

4. 将AutoGenerateColumns属性设置为None(默认值)来只显示指定的列:

DevExpress WPF中文教程图集
更改列布局

自适应列到GridControl,并设置所有列的最佳宽度,来完全显示其内容:

DevExpress WPF中文教程图集

1. 在GridControl Quick Actions菜单中启用AutoWidth选项来使列自适应网格。

DevExpress WPF中文教程图集

2. 在TableView属性窗口中,指定TableView.BestFitModeOnSourceChange属性来计算基于单元格和标题内容的所有列的最佳宽度:

DevExpress WPF中文教程图集
指定一个In-Place编辑器

GridControl使用in-place编辑器编辑单元格的值,编辑器类型取决于列内容。CheckEdit用于布尔值、DateEdit用于日期、TextEdit用于字符串和数字,您也可以定义一个自定义编辑器(例如,ComboBoxEdit):

DevExpress WPF中文教程图集

向视图模型添加一个Shippers集合:

MainViewModel.cs

using DevExpress.Mvvm;
using DevExpress.Mvvm.DataAnnotations;
using DevExpress.Mvvm.Xpf;
using System.Collections.Generic;
using System.Linq;
using WPF_DataGrid_GetStarted.Models;

namespace WPF_DataGrid_GetStarted.ViewModels {
public class MainViewModel : ViewModelBase {
NorthwindEntities _Context;
IList<Order> _ItemsSource;
// ...
IList<Shipper> _Shippers;
public IList<Shipper> Shippers {
get {
if (_Shippers == null && !DevExpress.Mvvm.ViewModelBase.IsInDesignMode) {
_Context = new NorthwindEntities();
_Shippers = _Context.Shippers.ToList();
}
return _Shippers;
}
}
// ...
}
}

MainViewModel.vb

Imports DevExpress.Mvvm
Imports DevExpress.Mvvm.DataAnnotations
Imports DevExpress.Mvvm.Xpf
Imports System.Collections.Generic
Imports System.Linq
Imports WPF_DataGrid_GetStarted.Models

Namespace WPF_DataGrid_GetStarted.ViewModels
Public Class MainViewModel
Inherits ViewModelBase

Private _Context As NorthwindEntities
Private _ItemsSource As IList(Of Order)
' ...
Private _Shippers As IList(Of Shipper)

Public ReadOnly Property Shippers As IList(Of Shipper)
Get

If _Shippers Is Nothing AndAlso Not DevExpress.Mvvm.ViewModelBase.IsInDesignMode Then
_Context = New NorthwindEntities()
_Shippers = _Context.Shippers.ToList()
End If

Return _Shippers
End Get
End Property
' ...
End Class
End Namespace

2. 构建解决方案,使Shippers集合在Visual Studio XAML设计器中可见。

3. 选择Ship Via列并调用其Quick Actions菜单。

4. 将ComboBoxEditSettings对象分配给ColumnBase.EditSettings属性:

DevExpress WPF中文教程图集

5. 将Shippers集合设置为ComboBoxEditSettings的ItemsSource:

DevExpress WPF中文教程图集

6. 设置DisplayMember属性为CompanyName,ValueMember属性为ShipperId:

DevExpress WPF中文教程图集
格式化值

您可以配置GridControl显示数据的方式,下面的示例将Freight列数据格式化为货币:

DevExpress WPF中文教程图集

1. 选择Freight列,调用它的Quick Actions菜单,然后选择Create EditSettings:

DevExpress WPF中文教程图集

GridControl将TextEditSettings对象分配给ColumnBase.EditSettings属性。

2. 打开Mask Editor窗口。

DevExpress WPF中文教程图集

3. 选择Numeric(数字)掩码类型并选择Currency(货币)掩码。

4. 勾选Use mask as DisplayFormat然后点击OK。

DevExpress WPF中文教程图集

更多DevExpress线上公开课、中文教程资讯请上中文网获取

标签:Mvvm,DevExpress,编辑器,Shippers,Grid,WPF,GridControl
From: https://www.cnblogs.com/AABBbaby/p/18245275

相关文章

  • WPF-DataGrid 样式设置
    在wpf中使用DataGrid虽然方便,但是其默认样式往往很难满足需求,而修改模板往往由比较麻烦,很多时候我们会用ListBox或ListView+DataTemplate来实现同样效果,但为了有些时候需要应用,这里记录一下一些基本属性设置方法,以免忘记。code<Windowx:Class="WpfApp7.MainWindow"......
  • WPF/C#:异常处理
    什么是异常?在C#中,异常是在程序执行过程中发生的特殊情况,例如尝试除以零、访问不存在的文件、网络连接中断等。这些情况会中断程序的正常流程。当C#程序中发生这种特殊情况时,会创建一个异常对象并将其抛出。这个异常对象包含了关于异常的详细信息,如异常类型和异常发生时的程序状......
  • WPF/C#:程序关闭的三种模式
    ShutdownMode枚举类型介绍ShutdownMode是一个枚举类型,它定义了WPF应用程序的关闭方式。这个枚举类型有三个成员:OnLastWindowClose:当最后一个窗口关闭或者调用System.Windows.Application.Shutdown方法时,应用程序会关闭。OnMainWindowClose:当主窗口关闭或者调用System.Windows.......
  • 界面控件DevExpress WinForms垂直&属性网格组件 - 拥有更灵活的UI选择(一)
    DevExpressWinForms垂直&属性网格组件旨在提供UI灵活性,它允许用户显示数据集中的单个行或在其90度倒置网格容器中显示多行数据集。另外,用户可以把它用作一个属性网格,就像在VisualStudioIDE中那样。P.S:DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响......
  • WPF dependency property to customize control in usercontrol
    //usercontrol<UserControlx:Class="WpfApp157.ImageListBox"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xm......
  • WPF中读取Excel文件的内容
    演示效果实现方案1.首先导入需要的Dll(这部分可能需要你自己搜一下)Epplus.dllExcel.dllICSharpCode.SharpZipLib.dll2.在你的解决方案的的依赖项->添加引用->浏览->选择1中的这几个Dll点击确定。(添加依赖)3.然后看代码内容附上源码usingExcel;usingSystem.Dat......
  • 使用WPF 当程序已打开时第二次打开程序直接弹出第一次打开的程序
    在代码中增加[DllImport("user32.dll")]privatestaticexternboolSetForegroundWindow(IntPtrhWnd);[DllImport("user32.dll")]privatestaticexternboolShowWindowAsync(IntPtrhWnd,intnCmdShow);[DllImport("user32.dll"......
  • WPF阻止窗体被系统缩放,使用显示器DPI
    WPF默认是跟随系统DPI变化(缩放与布局)而缩放窗体的;微软把它称为默认DPI感知,当DPI发生变化时WPF感知到后缩放窗体,介绍链接:设置进程的默认DPI感知(Windows)-Win32apps|MicrosoftLearn如果我们不希望窗体被缩放,而是让窗体使用显示器DPI该怎么办呢?首先修改app.manifest,如......
  • 发现XWPFDocument写入Word文档时的小BUG:两天的探索与解决之旅
    引言最近在使用XWPFDocument生成Word文档时,遇到一个错误:“未将对象引用设置到对象的实例”。这个平常很容易找到原因的问题却困扰了我两天,最终发现问题出在设置段落时赋值了空值。本文将详细记录这个问题的原因及解决方法,希望能对遇到相同问题的开发者有所帮助。第一天:问题的发......
  • [ABC311G] One More Grid Task
    [ABC311G]OneMoreGridTask题目信息题面翻译给你一个\(n\timesm\)的矩阵\(a\),求:\[\max_{1\leql_1\leqr_1\leqn,1\leql_2\leqr_2\leqm}(\sum_{l_1\leqi\leqr_1,l_2\leqj\leqr_2}a_{i,j}\times\min_{l_1\leqi\leqr_1,l_2\leqj\leqr_2}a_{i......