При нажатии кнопки в базу данных должен быть добавлен новый элемент с идентификатором. Он работает и корректно обновляет сетку данных. Но если элемент с текущим идентификатором уже существует, вместо этого необходимо увеличить счетчик. Эти изменения правильно применяются к базе данных, но не к сетке данных.
Значение Datagrid обновляется только тогда, когда я прокручиваю вниз, пока оно не скроется, и не верну его обратно. Как это исправить правильно?
Код MainWindow.xaml.cs следующий:
Код: Выделить всё
public partial class MainWindow : Window
{
private ProductContext _context;
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Product newProduct = new Product() {
Id = idTextBox.Text,
Count = 1
};
Product oldProduct = _context.Products.Find(newProduct.Id);
if(oldProduct!= null)
oldProduct.Count++;
else
_context.Products.Add(newProduct);
_context.SaveChanges();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
_context = new ProductContext();
_context.Products.Load();
dataGrid.ItemsSource = _context.Products.Local;
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
_input.Dispose();
}
}
Код: Выделить всё
Код: Выделить всё
public partial class ProductContext : DbContext
{
public DbSet Products { get; set; }
public ProductContext () : base("name=ProductDB") { }
}
Код: Выделить всё
public class Product
{
public string Id { get; set; }
public int Count { get; set; }
}
PS: Я буду очень признателен за советы, если я в корне сделаю что-то не так при общении с базой данных
Подробнее здесь: https://stackoverflow.com/questions/790 ... -framework