WPF - MVVM - Textbox wird nicht mehr mit der Eigenschaft viewmodel synchronisiert

Ich habe eine WPF-Ansicht mit einer TextBox, die das Textfeld an ein ViewModel bindet, wobei UpdateSourceTrigger auf PropertyChanged festgelegt ist. In der Eigenschaftensetzung im ViewModel habe ich eine einfache Überprüfung, um zu verhindern, dass der Text mehr als 10 Zeichen enthält:

<TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        this.DataContext = new MainViewModel();
    }
}


public string Name
{
    get { return _Name; }
    set
    {
        if (_Name != value)
        {
            if (value.Length <= 10)
            {
                _Name = value;
            }
            RaisePropertyChanged("Name");
        }
    }
}

Wenn der Wert nicht festgelegt ist, habe ich immer noch RaisePropertyChanged (was einfach PropertyChanged auslöst).

Das Problem ist, dass ich _Name nicht aktualisiere, wenn ich das 11. Zeichen in der Benutzeroberfläche eingebe. Ich führe PropertyChanged aus, und ich kann sehen, dass der get-Accessor aufgerufen wird, und er gibt die Zeichenfolge mit nur 10 Zeichen zurück. Meine TextBox spiegelt dies jedoch nicht wider. Es zeigt immer noch die Zeichenfolge mit 11 Zeichen.

Wenn ich beim 11. Zeichen den Text im Setter in "ERROR" ändere und die Feuereigenschaft geändert wird, wird die TextBox aktualisiert, um den geänderten Text anzuzeigen.

Warum gibt die Benutzeroberfläche dies nicht wieder, wenn ich den Text im Setter auf den vorherigen Wert zurücksetze?

Ich weiß, dass es alternative Möglichkeiten gibt, mit max. Zeichen umzugehen, aber warum funktioniert das nicht?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage