У меня довольно интересная проблема. У меня есть DataGrid в WPF, который выглядит как:Обновление DataGrid с использованием ICollectionView в WPF MVVM
<DataGrid ItemsSource="{Binding View, IsAsync=True, Mode = TwoWay}"
AutoGenerateColumns="False"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
VirtualizingStackPanel.VirtualizationMode="Standard"
VirtualizingStackPanel.IsVirtualizing="True">
COLLUMNS
</DataGrid>
На данных в этой сетке я выполняющей операции Crud, но мне кажется, я не могу обновить вид после добавить или удалить операцию, он отлично работает, когда я обновить запись или фильтр Это.
Simple C# опса я пытался в модели представления: прочитанных:
public CommendationViewModel()
{
this._catalog = new CatalogContexct();
this._commendations = this._catalog.Commendations.ToList();
var commendation = new ListCollectionView(this._commendations);
this.CommendationView = CollectionViewSource.GetDefaultView(commendation);
this.AddCommand = new RelyCommand(AddEntity, param => this._canExecute);
this.EditCommand = new RelyCommand(EditEntity, param => this._canExecute);
this.UpdateCommand = new RelyCommand(UpdateEntity, param => this._canExecute);
this.RemoveCommand = new RelyCommand(RemoveEntity, param => this._canExecute);
this.NameCommand = new RelyCommand(Filter, param => this._canExecute);
this.CancelCommand = new RelyCommand(Cancel, param => this._canExecute);
}
И добавить:
public void AddEntity(object obj)
{
if(string.IsNullOrEmpty(this.Name))
{
MessageBox.Show("Brak nazwy do dodania");
return;
}
var commendation = new Commendation() { Name = this.Name };
this._catalog.Commendations.Add(commendation);
this._catalog.SaveChanges();
var commendationRefresh = new ListCollectionView(this._catalog.Commendations.ToList());
this.CommendationView = CollectionViewSource.GetDefaultView(commendationRefresh);
this.CommendationView.Refresh();
MessageBox.Show("Nowe źródło polecenia zostało dodane");
}
Как вы видите, я попытался обновить представление в команде надстройки, но это не сработало. Какие-либо предложения?
Вы связали свойство ItemsSource объекта DataGrid с названием «Вид», но вы обновляете какое-либо свойство под названием «Co mmendationView». Вы должны обновить ту же точку зрения, к которой привязан DataGrid. – mm8