O desenvolvimento da interface WPF é muito difícil? DevExpress ensina como lidar com CRUD

DevExpress Technical Exchange Group 2: 775869749 Bem-vindo ao grupo de discussão

Baixe DevExpress v20.1 versão completa     DevExpress v20.1 aquisição de recursos chineses

Com DevExpress WPF Controls , você pode criar aplicativos baseados em XAML com poderosas funções interativas que se concentram nas necessidades dos clientes contemporâneos e construir uma nova geração de soluções habilitadas por toque no futuro.

Fundo do sistema

  • Plataforma: WPF
  • Produto: DXGrid para WPF

Este artigo demonstrará como usar LinqInstantFeedbackDataSource ou LinqServerModeDataSource com DXGrid e como implementar operações CRUD (por exemplo, adicionar, excluir, editar) no aplicativo por meio de comportamentos especiais.

Observe que este exemplo de teste requer que o serviço SQL Express seja instalado em seu computador.

Criamos LINQServerModeCRUDBehavior e LINQInstantModeCRUDBehavior operações adicionais para GridControl, por exemplo:

 

<dxg: GridControl> 

<dxmvvm: Interaction.Behaviors> 

<crud: LINQServerModeCRUDBehavior ...> 

<crud: LINQServerModeCRUDBehavior.DataSource /> 

<dxsm: LinqServerModeDataSource ... /> 

< crud: LINQServerModeCRUDBehavior.DataSource /> <dxsm: LinqServerModeDataSource ... /> < crud: LINQServerModeCRUDBehavior.DataSource /> <dxsm: LinqServerModeDataSource ... / > 

</cruderver:LINQSUDCRodeCrodeSource> > 

</dxmvvm:Interaction.Behaviors> 

</ dxg: GridControl>

 

As classes LINQServerModeCRUDBehavior e LINQInstantModeCRUDBehavior incluem as propriedades NewRowForm e EditRowForm para fornecer as operações "Adicionar linha" e "Editar linha". Usando esses atributos, você pode criar adicionar e editar formulários conforme necessário:

 

<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 = "Nome:" VerticalAlignment = "Centro" 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}" />

 

Essas classes de operação exigem as seguintes informações em seu modelo de dados:

  • RowType - o tipo de linha;
  • Entidade de banco de dados DataContext;
  • Objeto do tipo DataSource-LinqInstantFeedbackDataSource ou LinqServerModeDataSource.

 

<dxg: GridControl> 

<i: Interaction.Behaviors> 

<crud: LINQServerModeCRUDBehavior RowType = "{x: Type local: Item}" DataContext = "{Binding Source = {StaticResource DataClassesDataContext}}"> 

<crud: LINQServerModeCRUDBehavior> 

< crud: LINQServerModeCRUDBehavior> dxsm: LinqServerModeDataSource KeyExpression = "Id" QueryableSource = "{Binding Items, Source = {StaticResource DataClassesDataContext}}" /> 

</crud:LINQServerModeCRUDBehavior.DataSource> 

</ crud: LINQServerModeCRUDBehavior> 

</ diInserverModeCRUDBehavior> 

</ diInfo:g : GridControl>

 

Por favor, consulte as  LinqServerModeDataSource e LinqInstantFeedbackDataSource aulas para aprender mais sobre LinqServerModeDataSource e LinqInstantFeedbackDataSource.

Os descendentes da classe de operação suportam os seguintes comandos: NewRowCommand, RemoveRowCommand, EditRowCommand. Você pode facilmente vincular controles interativos a esses comandos, por exemplo:

 

<crud: LINQServerModeCRUDBehavior x: Name = "helper" /> 

<StackPanel Grid.Row = "1" Orientation = "Horizontal" HorizontalAlignment = "Center"> 

<Button Height = "22" Width = "60" Command = "{Binding Path = NewRowCommand, ElementName = helper} "> Adicionar </Button> 

<Button Height =" 22 "Width =" 60 "Command =" {Binding Path = RemoveRowCommand, ElementName = helper} "Margin =" 6,0,6, 0 "> Remover </Button> 

<Button Height =" 22 "Width =" 60 "Command =" {Binding Path = EditRowCommand, ElementName = helper} "> Editar </Button> 

</StackPanel>

 

Por padrão, as soluções LINQServerModeCRUDBehavior e LINQInstantModeCRUDBehavior oferecem suporte aos seguintes recursos de interação do usuário final:

  1. O usuário final pode editar o valor da linha selecionada clicando duas vezes na linha da grade ou pressionando Enter quando a propriedade AllowKeyDownActions for True.
  2. Se a propriedade AllowKeyDownActions for True, o usuário final pode deletar a linha selecionada por meio da tecla Delete.
  3. Os usuários finais podem adicionar, excluir e editar novas linhas por meio dos comandos NewRowCommand, RemoveRowCommand e EditRowCommand.

Obtenha consultoria DevExpress em primeira mão, tudo no site chinês DevExpress!

Acho que você gosta

Origin blog.csdn.net/AABBbaby/article/details/108639159
Recomendado
Clasificación