gpt4 book ai didi

c# - 在 DataGrid 中编辑后直接保存实体

转载 作者:行者123 更新时间:2023-11-30 16:07:02 25 4
gpt4 key购买 nike

我使用 DataGrid 向用户可视化我的数据。编辑后,更新后的数据应直接存储到数据库中,无需使用任何“保存”按钮。

到目前为止,这是我的解决方案,它适用于除 ComboBox 之外的所有 DataGrid 列,方法是使用 EventTriggerInvokeCommandAction:

<DataGrid ItemsSource="{Binding Path=Animals, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" SelectionMode="Single"
AutoGenerateColumns="False" CanUserSortColumns="True">
<i:Interaction.Triggers>
<i:EventTrigger EventName="RowEditEnding">
<i:InvokeCommandAction Command="{Binding SaveCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Columns>
<DataGridTextColumn Header="EPC" Binding="{Binding Epc, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="Visual ID" Binding="{Binding VisualId, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="Geschlecht" Binding="{Binding Gender, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTemplateColumn Header="Bucht">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource=
"{Binding DataContext.Pens,RelativeSource={RelativeSource AncestorType={x:Type view:AdministrationView}}}"
DisplayMemberPath="Name"
SelectedItem="{Binding Pen, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValue="{Binding Pen.PenId}"
SelectedValuePath="PenId"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>

Image

ComboBox 选择更改后,如何在我的 View 模型中调用 SaveCommand

或者是否有更简单的解决方案来实现我想要的行为(每次编辑后自动保存到数据存储)?

最佳答案

如果您只添加另一个激活您的 ICommandEventTrigger,您将获得所需的行为:

<DataGridTemplateColumn Header="Bucht">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext.Pens, RelativeSource={RelativeSource AncestorType={x:Type view:AdministrationView}}}" DisplayMemberPath="Name" SelectedItem="{Binding Pen, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedValue="{Binding Pen.PenId}" SelectedValuePath="PenId">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding DataContext.SaveCommand, RelativeSource={RelativeSource AncestorType={x:Type view:AdministrationView}}}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

关于c# - 在 DataGrid 中编辑后直接保存实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31263317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com