DevExpress Technical Exchange Group 2:775869749グループディスカッションへようこそ
DevExpress v20.1フルバージョンをダウンロードDevExpress v20.1 中国語リソース獲得
DevExpress社のWPFコントロール、あなたは現代的な顧客のニーズに焦点を当て、強力なインタラクティブ機能を備えたXAMLベースのアプリケーションを作成することができますし、将来的にはタッチ対応ソリューションの新世代を構築します。
システムの背景
- プラットフォーム:WPF
- 製品:DXGrid for WPF
この記事では、DXGridでLinqInstantFeedbackDataSourceまたはLinqServerModeDataSourceを使用する方法と、特別な動作を通じてアプリケーションでCRUD操作(たとえば、追加、削除、編集)を実装する方法を示します。
このテストサンプルでは、SQL Expressサービスがコンピューターにインストールされている必要があります。
GridControlの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プロパティが含まれています。これらの属性を使用して、必要に応じて追加および編集フォームを作成できます。
<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}" />
これらの操作クラスには、データモデルに次の情報が必要です。
- RowType-行のタイプ。
- DataContext-データベースエンティティ。
- 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>
LinqServerModeDataSourceおよびLinqInstantFeedbackDataSourceの詳細については、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} ">追加</ Button> <Button Height =" 22 "Width =" 60 "Command =" {Binding Path = RemoveRowCommand、ElementName = helper} "Margin =" 6,0,6、 0 ">削除</ Button> <Button Height =" 22 "Width =" 60 "Command =" {Binding Path = EditRowCommand、ElementName = helper} ">編集</ Button> </ StackPanel>
既定では、LINQServerModeCRUDBehaviorおよびLINQInstantModeCRUDBehaviorソリューションは、次のエンドユーザー操作機能をサポートしています。
- エンドユーザーは、グリッド行をダブルクリックするか、AllowKeyDownActionsプロパティがTrueのときにEnterキーを押すことにより、選択した行の値を編集できます。
- AllowKeyDownActionsプロパティがTrueの場合、エンドユーザーはDeleteキーを使用して選択した行を削除できます。
- エンドユーザーは、NewRowCommand、RemoveRowCommand、およびEditRowCommandコマンドを使用して、新しい行を追加、削除、および編集できます。