查看:
TextBox x:Name="feedback" Text="{Binding FeedbackText,Mode=TwoWay}"
视图模型:
public string FeedbackText
{
get
{
return _feedbackTextProperty;
}
set
{
_feedbackTextProperty = value;
RaisePropertyChanged(FeedbackTextPropertyName);
}
}
我正在使用可绑定的应用程序栏但是当我单击该按钮时,FeedbackText属性中没有值。看起来好像“lostfocus”没有触发更新属性。
我正在使用MVVM Light。我错过了什么吗?
答案 0 :(得分:0)
如果您在单击应用栏按钮时仍然在文本框中有焦点,则文本框将不会触发丢失的焦点事件并导致更新绑定。
是的,这可能令人沮丧。 :(
有各种各样的解决方法,例如在这种情况下强制更新绑定或Coding4Fun Tools中的Binding Helper
。
答案 1 :(得分:0)
我希望我不会太迟。我在按下ApplicationBarIconButton时使用Window Phone 8保存TextBox文本时遇到了同样的问题。解决此问题的方法是更新焦点TextBox的绑定源属性。您可以使用以下代码执行此操作:
var focusedObject = FocusManager.GetFocusedElement() as TextBox;
if (focusedObject != null)
{
var binding = focusedObject.GetBindingExpression(TextBox.TextProperty);
if (binding != null)
{
binding.UpdateSource();
}
}
最佳!