Ich habe eine WPF-Ansicht mit einem TextBox, binden das Textfeld an ein ViewModel mit UpdateSourceTrigger auf PropertyChanged festgelegt. In der Eigenschaft Setter in dem Ansichtsmodell, ich habe eine einfache Prüfung den Text aus mehr als 10 Zeichen zu verhindern:WPF - MVVM - Textfeld nicht mehr synchron mit viewmodel -Eigenschaft
<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 gesetzt, ich RaisePropertyChanged noch (was einfach feuert Property).
Das Problem ist, dass wenn ich das 11. Zeichen in der Benutzeroberfläche eingeben, ich nicht aktualisieren _Name. Ich fire PropertyChanged, und ich kann sehen, dass der Get Accessor get aufgerufen wird und es die Zeichenfolge mit nur 10 Zeichen zurückgibt. Meine TextBox spiegelt dies jedoch nicht wider; Es zeigt immer noch die Zeichenfolge mit 11 Zeichen.
Darüber hinaus ist, dass, wenn auf dem 11. Zeichen ich den Text in der Setter zu "ERROR" ändern und Feuer Eigenschaft geändert, die TextBox aktualisiert, um den geänderten Text anzuzeigen.
Warum also, wenn ich den Text im Setter zurück auf den vorherigen Wert ändern, spiegelt die Benutzeroberfläche dies nicht wider?
Ich weiß, es gibt alternative Möglichkeiten der Handhabung von Max-Zeichen, aber warum funktioniert das nicht?
Vielen Dank! Irgendeine Idee, wenn das dem Mutterschiff gemeldet wurde? Wenn nicht, werde ich. –
@SteveOsborn: Haha, ich bin mir nicht sicher, ob das dem Mutterschiff gemeldet wurde :) Ich habe schon einmal nachgeschaut, aber ich habe nichts gefunden, aber es ist ein bisschen schwierig zu wissen, wonach genau gesucht werden soll. Geh und berichte es, lass es mich wissen, wenn du es hast, und ich werde es verbessern. –
https://connect.microsoft.com/VisualStudio/feedback/details/745368/wpf-textbox-binding-doesnt-work-properly –