• <menu id="w2i4a"></menu>
  • logo DevExpress WPF使用技巧教程

    文檔首頁>>DevExpress WPF使用技巧教程>>WPF界面解決方案首選工具DevExpress WPF使用教程:如何使用DXGrid和eXpress持久對象實現(xiàn)CRUD操作

    WPF界面解決方案首選工具DevExpress WPF使用教程:如何使用DXGrid和eXpress持久對象實現(xiàn)CRUD操作


    下載DevExpress v20.1完整版    DevExpress v20.1漢化資源獲取

    通過DevExpress WPF Controls,您能創(chuàng)建有著強大互動功能的XAML基礎(chǔ)應(yīng)用程序,這些應(yīng)用程序?qū)W⒂诋?dāng)代客戶的需求和構(gòu)建未來新一代支持觸摸的解決方案。

    本文將介紹如何將XPInstantFeedbackSource或XPServerCollectionSource與DXGrid一起使用,以及如何通過特殊行為在應(yīng)用程序中實現(xiàn)CRUD操作(例如,添加、刪除、編輯)。

    系統(tǒng)背景
    • 平臺:WPF
    • 產(chǎn)品:DXGrid for WPF

    測試示例需要在計算機上安裝SQL Express服務(wù)和MSAccess。

    我們已經(jīng)為GridControl創(chuàng)建了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"操作。使用這些屬性,可以根據(jù)需要創(chuàng)建添加和編輯表單:

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

    此操作類需要您的數(shù)據(jù)模型中的以下信息:

    • XPObjectType:行的類型;
    • DataServiceContext:數(shù)據(jù)庫實體;
    • PrimaryKey:數(shù)據(jù)庫表的主鍵;
    • 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屬性,該屬性引用提供用于處理數(shù)據(jù)庫的操作的對象

    helper.ServiceHelper = new ServiceHelper(helper, new Uri("<a href='http://localhost'>http://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>

    默認(rèn)情況下,XPOServerModeCRUDBehavior和XPOInstantModeCRUDBehavior解決方案支持以下最終用戶交互功能:

    1. 最終用戶可以通過雙擊網(wǎng)格行或在AllowKeyDownActions屬性為True的情況下按Enter鍵來編輯選定的行值。
    2. 如果AllowKeyDownActions屬性為True,則最終用戶可以通過Delete鍵刪除選定的行。
    3. 最終用戶可以通過NewRowCommand、RemoveRowCommand和EditRowCommand命令添加,刪除和編輯新行。

    DevExpress技術(shù)交流群2:775869749      歡迎一起進群討論

    獲取第一手DevExpress咨詢,盡在DevExpress中文網(wǎng)!

    慧都高端UI界面開發(fā)
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();