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

    文檔首頁>>DevExpress WPF使用技巧教程>>DevExpress WPF使用技巧教程:如何使用DXGrid和LINQ to SQL類實(shí)現(xiàn)CRUD操作

    DevExpress WPF使用技巧教程:如何使用DXGrid和LINQ to SQL類實(shí)現(xiàn)CRUD操作


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

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

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

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

    請注意,該測試樣本需要在您的計算機(jī)上安裝SQL Express服務(wù)。

    我們?yōu)镚ridControl創(chuàng)建LINQServerModeCRUDBehavior和LINQInstantModeCRUDBehavior附加操作,例如:

    <dxg:GridControl>
    
    <dxmvvm:Interaction.Behaviors>
    
    <crud:LINQServerModeCRUDBehavior ...>
    
    <crud:LINQServerModeCRUDBehavior.DataSource/>
    
    <dxsm:LinqServerModeDataSource .../>
    
    </crud:LINQServerModeCRUDBehavior.DataSource>
    
    </crud:LINQServerModeCRUDBehavior>
    
    </dxmvvm:Interaction.Behaviors>
    
    </dxg:GridControl>

    LINQServerModeCRUDBehavior和LINQInstantModeCRUDBehavior類包含NewRowForm和EditRowForm屬性,以提供"Add Row" 和"Edit Row"操作。使用這些屬性,可以根據(jù)需要創(chuàng)建添加和編輯表單:

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

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

    • RowType - 行的類型;
    • DataContext - 數(shù)據(jù)庫實(shí)體;
    • DataSource - LinqInstantFeedbackDataSource或LinqServerModeDataSource類型的對象。

    <dxg:GridControl>
    
    <i:Interaction.Behaviors>
    
    <crud:LINQServerModeCRUDBehavior RowType="{x:Type local:Item}" DataContext="{Binding Source={StaticResource DataClassesDataContext}}">
    
    <crud:LINQServerModeCRUDBehavior.DataSource>
    
    <dxsm:LinqServerModeDataSource KeyExpression="Id" QueryableSource="{Binding Items, Source={StaticResource DataClassesDataContext}}"/>
    
    </crud:LINQServerModeCRUDBehavior.DataSource>
    
    </crud:LINQServerModeCRUDBehavior>
    
    </i:Interaction.Behaviors>
    
    </dxg:GridControl>

    請參閱 LinqServerModeDataSourceLinqInstantFeedbackDataSource類,以了解有關(guān)LinqServerModeDataSource和LinqInstantFeedbackDataSource的更多信息。

    操作類的后代支持以下命令:NewRowCommand、RemoveRowCommand、EditRowCommand,您可以輕松地將交互控件與這些命令綁定在一起,例如:

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

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

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

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

    獲取第一手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); })();