I am not very experienced using Behaviors, but so far they have come in handy to be able to execute code from the ViewModel
but still triggering the actions from the View
.
In my current scenario, I have a TextBox
that appears when a Button
is clicked. I would like to then set the focus of that TextBox
after the Button
has been clicked.
Previously, I have been able to set the focus using an EventTriggerBehavior
like so:
<core:EventTriggerBehavior>
<behaviors:FocusAction />
</core:EventTriggerBehavior>
However, this will only suffice if I want to set the focus of that control when the View
is loaded. In this case, the TextBox
isn't visible at that time, and actually, the focus goes to a different TextBox
initially.
Is there a way to set the focus of a control from the ViewModel
? This is a WinRT 8.1 application, but will be being ported to Windows 10 Universal in the future.
EDIT
The answer here looks like it would do what I am looking for, but when I try it I get an error:
Cannot resolve symbol 'UIPropertyMetadata'
From what I can tell, that class exists in the System.Windows
namespace, but even with a using System.Windows;
I still get the same error. I have also tried new System.Windows.UIPropertyMetadata(null, ElementToFocusPropertyChanged)
as well, but that doesn't make a difference either. Is that class not available in WinRT?