Прошу подсказать какая хорошая практика обновления отображения данных в DataGrid после операций с БД (EntityFramework/WPF). Ранее приходилось после каждого добавления/изменения/удаления повторно запрашивать данные из БД FillViewContracts(), хотелось бы этого избежать и настроить коллекцию на определение изменений в связанной коллекции.
class Contract_ViewModel : INotifyPropertyChanged
{
private ViewBalanceContract selectedContract;
//private OrganizationalStructure selectedOrgStruct;
public ViewBalanceContract SelectedContract
{
get { return selectedContract; }
set
{
selectedContract = value;
OnPropertyChanged("SelectedContract");
}
}
public ObservableCollection<ViewBalanceContract> ViewBalanceContracts { get; set; }
public Contract_ViewModel()
{
ViewBalanceContracts = new ObservableCollection<ViewBalanceContract> (EntityConnection.FillViewContracts());
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName]string prop = "")
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(prop));
}
}
XAML:
<DataGrid x:Name="dgContractView" ItemsSource="{Binding ViewBalanceContracts, Mode = TwoWay, UpdateSourceTrigger = PropertyChanged }" SelectedItem="{Binding SelectedContract}" HorizontalAlignment="Left" Height="284" Margin="406,116,0,0" VerticalAlignment="Top" Width="1142" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn x:Name="Status" Binding="{Binding StatusContract }" Header="Статус" Width="45*" />
<DataGridTextColumn x:Name="NameCustomer" Binding="{Binding NameCustomer}" Header="Заказчик" Width="45*" >
....
</DataGrid>
Загрузка данных:
internal static IEnumerable<ViewBalanceContract> FillViewContracts()
{
var _db = new EntityModel();
{
//не выдает информацию return _db.ViewBalanceContracts.Local;
return _db.ViewBalanceContracts.ToList();
}
}
Код формы:
public MainWindow()
{
InitializeComponent();
DataContext = new Contract_ViewModel();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Выдает ошибку при оформлении заказа без регистрации
Категорически приветствую! Допустим, у меня есть локальный gitlab и веб схема, где в роли фронта nginx который просто проксирует все запросы на apache...