So habe ich eine DataGrid
in meinem UserControl
. Es ist zu einem observable collection
in My ViewModel verbunden. Das ViewModel implementiert die Schnittstelle INotifyPropertyChanged
und wurde in der Ansicht entsprechend verdrahtet.Datagrid nicht aktualisiert, wenn Abfrage ausgelöst wird
Aus meiner Sicht:
<DataGrid AutoGenerateColumns="False"
EnableRowVirtualization="True"
ItemsSource="{Binding ContributionCollection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<!-- DataGrid rows -->
/>
und in dem Viewmodel:
private ObservableCollection<contribution> _contributionCollection;
public ObservableCollection<contribution> ContributionCollection
{
get
{
return _contributionCollection;
}
set
{
_contributionCollection= value;
OnPropertyChanged("ContributionCollection");
}
}
Was, das ist geschehen soll; Mit einem Klick auf eine bestimmte Schaltfläche wird eine Abfrage für die Datenbank ausgelöst und einige Ergebnisse zurückgegeben. Diese Ergebnisse sollen im Datagrid angezeigt werden.
// Fired by an ICommand Property
public object Contributions_CommandExecute(object param)
{
var queryContributions = context.contributions.Where(c => c.member == Member);
return _contributionCollection = new ObservableCollection<contribution>(queryContributions);
}
Aber das Datagrid kommt immer leer. Die Anwendung friert ein wenig ein, was darauf hindeutet, dass etwas im Hintergrund passiert, aber nichts wird tatsächlich auf die Ansicht übertragen. Tatsächlich funktioniert der ViewModel-Konstruktor nur dann ordnungsgemäß, wenn er bei der Initialisierung ausgelöst wird. Aber danach wird es nicht mehr feuern.
Irgendeine Idee, wo ich falsch liege?
Viel Dankbarkeit. Abgesehen davon, habe ich auch vergessen, die 'INotifyPropertyChanged' Schnittstelle hinzuzufügen. – Offer