Ich habe ein Problem mit der Bindung einer gemeinsamen Eigenschaft, die in mehreren ViewModels verwendet werden sollte.Wie verbindest du gemeinsame Eigenschaften in Multi ViewModels?
In meinem ersten MainViewModel verbinde ich mit der Datenbank, die Liste der Völker zurückgibt.
private async void Connected()
{
try
{
base.Peoples = await DatabaseConnection.GetAllPersonsCommandAsync();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Auf dem zweiten Blick Ich möchte diese Daten angezeigt werden, indem sie sie an Peoples Bindung:
<ListView Width="200"
Margin="0 20 0 0"
HorizontalAlignment="Left"
ItemsSource="{Binding Peoples}"
cm:Message.Attach="[Event SelectionChanged] = [Action Peoples_SelectionChanged($source)];">
Ich Bindung Peoples
meiner ViewModelBase
:
private List<Person> _peoples;
public List<Person> Peoples
{
get => _peoples;
set => OnPropertyChanged(ref _peoples, value);
}
Ich möchte Verwenden Sie diese Liste von Peoples
in anderen ViewModel, die von ViewModelBase erben (wie MainViewModel).
Ich hoffe, die Frage ist für Sie verständlich.
Grüße
==== aktualisieren.
Das ist mein OnPropertyChanged Methode:
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged<T>(ref T property, T value, [CallerMemberName]string propertyName = "")
{
property = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
===== zweite Update
ich etwas getestet, und als ich schuf neue Person wie folgt aus:
private ObservableCollection<Person> _peoples = new ObservableCollection<Person>{
new Person("aa", "aa", 1, 1)
};
public ObservableCollection<Person> Peoples
{
get => _peoples;
set => OnPropertyChanged(ref _peoples, value);
}
Ich kann sie sehen. Irgendwelche Lösungen?
Und wo ist dein Problem? Was funktioniert nicht wie erwartet? Was hast du bisher versucht? –
Es funktioniert nicht. Ich bekomme Daten von 'DatabaseConnection.GetAllPersonsCommandAsync();', aber es gibt keine Änderungen in meiner Ansicht. – striker
Zeigen Sie uns den Code in der OnPropertChanged() Methode. Wird das PropertyChanged-Ereignis tatsächlich ausgelöst? –