0

看法:


文本框 x:Name="feedback" Text="{Binding FeedbackText,Mode=TwoWay}"

视图模型:

public string FeedbackText
{
get
{
        return _feedbackTextProperty;
}

set
{
        _feedbackTextProperty = value;
    RaisePropertyChanged(FeedbackTextPropertyName);
}
}

我正在使用可绑定的应用程序栏,但是当我单击按钮时,FeedbackText 属性中没有值。看起来好像“lostfocus”没有触发更新属性。

我正在使用 MVVM Light。我错过了什么吗?

4

2 回答 2

0

我希望我不会太晚。在按下 ApplicationBarIconButton 时,我使用 Window Phone 8 保存 TextBox 文本时遇到了同样的问题。解决此问题的一种方法是更新焦点文本框的绑定源属性。您可以使用以下代码执行此操作:

var focusedObject = FocusManager.GetFocusedElement() as TextBox;

if (focusedObject != null)
{
    var binding = focusedObject.GetBindingExpression(TextBox.TextProperty);

    if (binding != null)
    {
        binding.UpdateSource();
    }
}

最好的!

于 2013-05-09T04:04:20.033 回答
0

如果单击应用栏按钮时文本框中仍然有焦点,则文本框不会触发丢失焦点事件并导致绑定更新。

是的,这可能令人沮丧。:(

有各种解决方法,例如在这种情况下强制更新绑定或Binding HelperCoding4Fun Tools中。

于 2012-05-16T12:59:56.353 回答