外围网上金喜网站

WPF界面解决方案首选工具DevExpress WPF使用教程:如何使用DXGrid和eXpress持久对象实现CRUD操作

原创|使用教程|编辑:龚雪|2020-09-22 09:39:10.743|阅读 186 次

概述:通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,本文将介绍如何将XPInstantFeedbackSource或XPServerCollectionSource与DXGrid一起使用,以及如何通过特殊行为在应用程序中实现CRUD操作(例如,添加、删除、编辑)。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

下载DevExpress v20.1完整版    DevExpress v20.1汉化资源获取

通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。

 本文将介绍如何将XPInstantFeedbackSource或XPServerCollectionSource与DXGrid一起使用,以及如何通过特殊行为在应用程序中实现CRUD操作(例如,添加、删除、编辑)。

系统背景
  • 平台:WPF
  • 产品:DXGrid for WPF

测试示例需要在计算机上安装SQL Express服务和MSAccess。

 我们已经为GridControl创建了XPOServerModeCRUDBehavior和XPOInstantModeCRUDBehavior附加操作,例如:

<dxg:GridControl><br> 
<i:Interaction.Behaviors><br> 
<crud:XPOServerModeCRUDBehavior .../><br> 
</i:Interaction.Behaviors><br> 
</dxg:GridControl>

 XPServerModeCRUDBehavior和XPInstantModeCRUDBehavior类包含NewRowForm和EditRowForm属性,以提供"Add Row"和 "Edit Row"操作。使用这些属性,可以根据需要创建添加和编辑表单:

<DataTemplate x:Key="EditRecordTemplate"><br> 
<StackPanel Margin="8" MinWidth="200"><br> 
<Grid><br> 
<Grid.ColumnDefinitions><br> 
<ColumnDefinition/><br> 
<ColumnDefinition/><br> 
</Grid.ColumnDefinitions><br> 
<Grid.RowDefinitions><br> 
<RowDefinition/><br> 
<RowDefinition/><br> 
</Grid.RowDefinitions><br> 
<TextBlock Text="ID:" VerticalAlignment="Center" Grid.Row="0" Grid.Column="0" Margin="0,0,6,4" /><br> 
<dxe:TextEdit x:Name="txtID" Grid.Row="0" Grid.Column="1" EditValue="{Binding Path=Id, Mode=TwoWay}" Margin="0,0,0,4" /><br> 
<TextBlock Text="Name:" VerticalAlignment="Center" Grid.Row="1" Grid.Column="0" Margin="0,0,6,4" /><br> 
<dxe:TextEdit x:Name="txtCompany" Grid.Row="1" Grid.Column="1" EditValue="{Binding Path=Name, Mode=TwoWay}" Margin="0,0,0,4" /><br> 
</Grid><br> 
</StackPanel><br> 
</DataTemplate><br> 
<crud:XPServerModeCRUDBehavior NewRowForm="{StaticResource ResourceKey=EditRecordTemplate}" EditRowForm="{StaticResource ResourceKey=EditRecordTemplate}"/> <br>

此操作类需要您的数据模型中的以下信息:

  • XPObjectType:行的类型;
  • DataServiceContext:数据库实体;
  • PrimaryKey:数据库表的主键;
  • CollectionSource/InstantCollectionSource:EntityServerModeDataSource类型的对象。

<dxg:GridControl><br> 
<i:Interaction.Behaviors><br> 
<crud:XPOServerModeCRUDBehavior XPObjectType="{x:Type local:Items}" CollectionSource="{Binding Collection}" PrimaryKey="Id"/><br> 
</i:Interaction.Behaviors><br> 
</dxg:GridControl><br>

 用于SL的XPInstantModeCRUDBehavior类包含ServiceHelper属性,该属性引用提供用于处理数据库的操作的对象

helper.ServiceHelper = new ServiceHelper(helper, new Uri("<a href='//localhost'>//localhost</a>:54177/WcfDataService.svc/"));<br>;

 操作类的后代支持以下命令:NewRowCommand、RemoveRowCommand、EditRowCommand,您可以轻松地将交互控件与这些命令绑定在一起。 例如:

<crud:XPOServerModeCRUDBehavior x:Name="helper"/><br> 
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center"><br> 
<Button Height="22" Width="60" Command="{Binding Path=NewRowCommand, ElementName=helper}">Add</Button><br> 
<Button Height="22" Width="60" Command="{Binding Path=RemoveRowCommand, ElementName=helper}" Margin="6,0,6,0">Remove</Button><br> 
<Button Height="22" Width="60" Command="{Binding Path=EditRowCommand, ElementName=helper}">Edit</Button><br> 
</StackPanel><br> 
<br>

 默认情况下,XPOServerModeCRUDBehavior和XPOInstantModeCRUDBehavior解决方案支持以下最终用户交互功能:

  1. 最终用户可以通过双击网格行或在AllowKeyDownActions属性为True的情况下按Enter键来编辑选定的行值。
  2. 如果AllowKeyDownActions属性为True,则最终用户可以通过Delete键删除选定的行。
  3. 最终用户可以通过NewRowCommand、RemoveRowCommand和EditRowCommand命令添加,删除和编辑新行。

DevExpress技术交流群2:775869749      欢迎一起进群讨论

慧都高端UI界面开发

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ipmdipw.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
DevExpress Universal Subscription

优秀的界面控件开发包,帮助企业构建卓越应用!

DevExpress WPF Subscription

高效MVVM开发模式,WPF界面解决方案首选工具,帮助企业实现酷炫动效界面。

DevExpress WinForms Subscription

为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。

DevExpress DXperience Subscription

高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!

DevExpress ASP.NET Controls

多款重量级ASP.NET用户界面组件套包,让您快速开发出完美、强大的应用程序!

title
title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP