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:
- 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.
- Se a propriedade AllowKeyDownActions for True, o usuário final pode deletar a linha selecionada por meio da tecla Delete.
- 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!