Ich habe einfache Galerie mit Notizen und Textfeld, um neue nach Titel hinzuzufügen. Ich benutze mvvm, andere Bindings funktionieren korrekt. Wenn ich Titel der Notiz festlegen und auf Eigenschaft hinzufügen klicken, wird NewNote.Title aktualisiert und das Objekt in der Datenbank gespeichert. Danach lösche ich NewNote.Title, aber die Benutzeroberfläche wird nicht aktualisiert.Wpf binded Eigenschaft nicht im 2-Wege-Modus aktualisieren
hier ist kurzes Video https://youtu.be/l3vFwI-a4TQ
XAML
<TextBox Text="{Binding NewNote.Title}" />
Seite Modellansicht
class NotesPageViewModel : INotifyPropertyChanged
{
public ObservableCollection<NoteViewModel> Notes { get; set; }
public NoteViewModel NewNote { get; set; }
public NotesPageViewModel()
{
NewNote = new NoteViewModel();
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
internal void LoadNotes()
{
using (var uow = new UnitOfWork())
{
Notes.Clear();
uow.NotesRepository.OrderBy(n => n.Position).ToList()
.ForEach(note => Notes.Add((NoteViewModel)note));
}
}
internal void AddNote()
{
if (string.IsNullOrWhiteSpace(NewNote.Title))
return;
using (var uow = new UnitOfWork())
{
uow.NotesRepository.Add((Note)NewNote);
uow.Complete();
}
NewNote.Title = "";
LoadNotes();
}
}
Objektansicht Modell
class NoteViewModel : INotifyPropertyChanged
{
public int Id { get; set; }
public string Title { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Ich habe gerade fantastische Bibliothek gefunden, ich kann [ImplementPropertyChanged] einfach über Klasse-Deklaration setzen, es heißt Fody –