我想执行数据网格并在数据网格的行中输入数据,然后在按下按钮时将数据保存在数据库中。如何获得MVVM格式的新数据网格行?

最佳答案

我建议创建一个专门将数据添加到数据库中的表单,然后刷新数据网格的项目源。

<DataGrid x:Name="dataGrid"  ItemsSource="{Binding ProductCollection}"  Grid.Row="1" AutoGenerateColumns="False" VirtualizingPanel.IsVirtualizing="True">
        <DataGrid.Columns>
            <DataGridTextColumn Header="DATE ADDED" Binding="{Binding DateAdded}" Width="Auto" />
            <DataGridTextColumn Header="PRODUCT ID" Binding="{Binding Id}" Width="*"/>
            <DataGridTextColumn Header="PRODUCT NAME" Binding="{Binding Name}" Width="*" />
            <DataGridTextColumn Header="CATEGORY" Binding="{Binding CategoryName}" Width="*" />
        </DataGrid.Columns>
</DataGrid>

样本表格:
<StackPanel MinWidth="250" MaxWidth="250">
    <TextBox  Margin="10" Text="{Binding NewId,UpdateSourceTrigger=PropertyChanged}"  MinHeight="38" />
    <TextBox  Margin="10" Text="{Binding NewName,UpdateSourceTrigger=PropertyChanged}"  MinHeight="38"/>
    <Button Command="{Binding InsertCommand}">Save</Button>
</StackPanel>

对于ViewModel
public ObservableCollection<ProductModel> ProductCollection { get; set; } = new ObservableCollection<ProductModel>();

将数据插入数据库后,只需使用表单中的数据创建一个新的产品对象,然后将其添加到collection(ProductCollection)中。它将自动刷新数据网格。
ProductModel item = new ProductModel();
item.id = NewId;
item.Name = NewName;
ProductCollection.Add(item);

在刷新数据的上下文中,我不建议您使用这种创建对象然后将其插入到集合中的方法,而不是清除该集合然后再从数据库中重新获取数据(如果您的程序有多个用户)。

关于wpf - 使用Mvvm如何在Datagrid wpf中获取数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58189687/

10-12 00:28
查看更多