2016-11-09 7 views
0

Ich versuche, den vorherigen Wert der Textboxbindung zu erhalten. Die Bindung ist wie:Vorheriger Wert für Bindung erhalten

<TextBox Text="{Binding UserName}" /> 

Es String-Eigenschaft in Ansichtsmodell ist, und ich bin nach strengem MVVM Ansatz. Gibt es eine verfügbare Eigenschaft oder ein Ereignis oder eine Problemumgehung, um den vorherigen Textfeldwert in XAML abzurufen?

Dank

EDIT: Ich dachte, dass ich Interaktion Auslöser zum bekam Tastaturfokus Ereignis schreiben kann, und ich kann den aktuellen Wert als vorherige Wert auf eine andere Eigenschaft binden. Auf diese Weise kann ich den vorherigen Wert richtig haben?

+0

vielleicht haben Sie ein xy-Problem. Was willst du erreichen? Irgendetwas von Rückgängig? http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Mat

+0

Wann und wo genau möchten Sie diesen vorherigen Wert? – AnjumSKhan

+0

@AnjumSKhan Ich möchte den vorherigen Wert erhalten, wenn die text -Eigenschaft von Textbox geändert wurde. Eigentlich, wenn ich den vorherigen Wert zu einer anderen Eigenschaft bekommen kann, könnte es großartig sein. –

Antwort

0

Bei der Bindung Ihrer Eigenschaft verwendet UserName ein Ereignis, um das Textfeld für Änderungen zu informieren. Dieses Ereignis könnte von INotifyPropertyChanged Klasse oder DependencyProperty sein, die beide Ereignisse haben, die Sie hören können.

Wenn Sie weitere Informationen benötigen, schreiben Sie den Code für die Kontextklasse

+0

Gibt es eine verfügbare Lösung auf XAML-Seite? wie

+0

Textbox ist ein Abhängigkeitsobjekt, das Sie auf das geänderte TextProperty-Ereignis im Code warten können. Nicht so MVVM obwohl. Strenge MVVM besagt, dass Sie mit der UserName-Eigenschaft und nicht mit dem Textfeld arbeiten sollten. Wenn Sie den Code hinter – Emad

+2

@stackerflow verwenden möchten Die einzige Möglichkeit, es auf XAML zu tun ist, die ursprüngliche 'TextBox' Klasse zu erweitern und sie in ein benutzerdefiniertes Steuerelement umzuwandeln. Dann fügen Sie die Abhängigkeitseigenschaften und alle Ihre Undo-Logikcodes hinzu und verwenden sie dann wie andere Steuerelemente. Auf diese Weise verschmutzen Sie Ihre MVVM-Implementierung nicht. – Jai

Verwandte Themen