Tôi có một DataGrid WPF với một số dữ liệu. Bạn có thể thêm hàng thông qua một cửa sổ riêng biệt. DataContext giống nhau, một đối tượng LINQ-to-SQL. Ràng buộc cũng giống nhau, tôi ràng buộc thuộc tính "ItemsSource" vào một bảng.Làm thế nào để làm mới một DataGrid WPF?
Trong cửa sổ khác, khi người dùng nhấp vào "Lưu", tôi tạo một hàng theo chương trình và thêm hàng bằng cách sử dụng "InsertOnSubmit". Sau đó tôi sử dụng phương thức "SubmitChanges" của DataContext.
Vấn đề của tôi là DataGrid không được cập nhật. Nếu tôi khởi động lại ứng dụng, tôi có thể thấy hàng mới, vì vậy nó nằm trong cơ sở dữ liệu, nhưng tôi không thể tìm thấy cách để làm mới DataGrid.
Cho đến nay tôi đã cố gắng sử dụng "UpdateTarget" trên BindingExpression của DataGrid, nhưng nó không giúp ích gì. Tôi cũng đã thử "dataGrid.Items.Refresh()" - cùng một kết quả. Làm thế nào tôi có thể sửa lỗi này?
Giải pháp của bạn rõ ràng là hoạt động. Tôi chỉ nghĩ rằng tôi có thể nhận được đi với đánh dấu ràng buộc XAML đơn giản. – KovBal
Nếu chúng ta sử dụng ObservableCollection làm cầu nối giữa LINQ với sql và điều khiển, thì làm sao chúng ta có thể sử dụng SubmitChanges() để gửi kết quả trở lại cơ sở dữ liệu? – MemoryLeak
@MemoryLeak - vì vậy đây là một mẹo nhỏ; không chỉ bạn muốn biết khi nào * bộ sưu tập * thay đổi (tức là những gì INotifyCollectionChanged), bạn cũng muốn biết khi nào có bất kỳ mục * nào thay đổi. Vì vậy, bạn cần phải đăng ký thay đổi bộ sưu tập, sau đó thêm/xóa, hãy đăng ký INOTifyPropertyChanged của mỗi mục. * Sau đó * bạn phải quyết định những gì cần lưu dựa trên thông báo nào bạn nhận được –