Использование Mvvm Как получить данные в Datagrid wpf? - PullRequest
0 голосов
/ 01 октября 2019

Я хочу выполнить сетку данных и ввести данные в строку сетки данных и сохранить данные в базе данных, когда я нажимаю кнопку. Как получить новую строку таблицы данных в формате MVVM?

1 Ответ

1 голос
/ 01 октября 2019

Я рекомендую создать форму, которая специально добавляет данные в базу данных, а затем обновляет источник элементов сетки данных.

<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>();

После вставки данных в базу данных просто создайте новый объект продукта, используя данные из формы, а затем добавьте его в коллекцию (ProductCollection). Он автоматически обновит сетку данных.

ProductModel item = new ProductModel();
item.id = NewId;
item.Name = NewName;
ProductCollection.Add(item);

В контексте обновления данных я не рекомендую этот метод создания объекта, а затем вставки его в коллекцию, а не очистки коллекции и повторного полученияданные из базы данных, если в вашей программе несколько пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...