Ich bin nicht sehr Erfahrung mit Verhalten, aber bis jetzt haben sie sich als praktisch, in der Lage sein, Code aus dem ViewModel
ausführen, aber immer noch die Aktionen aus dem View
auslösen.Binding FocusAction Verhalten auf Knopfdruck
In meinem aktuellen Szenario habe ich eine TextBox
, die angezeigt wird, wenn ein Button
geklickt wird. Ich möchte dann den Fokus darauf setzen TextBox
nach der Button
wurde geklickt.
Früher konnte ich den Fokus mit Hilfe eines EventTriggerBehavior
wie so einzustellen:
<core:EventTriggerBehavior>
<behaviors:FocusAction />
</core:EventTriggerBehavior>
Dies wird jedoch nur genügen, wenn ich den Fokus dieser Kontrolle gesetzt werden soll, wenn die View
geladen wird. In diesem Fall ist der TextBox
zu diesem Zeitpunkt nicht sichtbar, und tatsächlich geht der Fokus zunächst auf einen anderen TextBox
.
Gibt es eine Möglichkeit, den Fokus eines Steuerelements von ViewModel
zu setzen? Dies ist eine WinRT 8.1-Anwendung, wird aber in Zukunft auf Windows 10 Universal portiert.
EDIT
Die Antwort here sieht aus wie es tun würde, was ich suche, aber wenn ich es versuchen, bekomme ich einen Fehler:
Cannot resolve symbol 'UIPropertyMetadata'
Von dem, was ich sagen kann, dass class existiert im System.Windows
Namensraum, aber selbst mit einem using System.Windows;
bekomme ich immer noch den gleichen Fehler. Ich habe auch versucht new System.Windows.UIPropertyMetadata(null, ElementToFocusPropertyChanged)
, aber das macht auch keinen Unterschied. Ist diese Klasse in WinRT nicht verfügbar?