c# – UWP TextBox.Text绑定在使用PlaceholderText时不更新

我有一些文本框,我想设置PlaceholderText属性.每个框的文本绑定到基础视图模型的属性.现在在XAML中设置占位符就像那样

<TextBox PlaceholderText="Placeholder" Text={Binding PropertyName} />

我注意到,当文本框失去焦点时,视图模型的属性不再更新.
而没有占位符,绑定工作正常.

这种行为是否有意,是否有任何变通方法,或者我是否必须坚持使用描述每个框的预期输入的经典TextBlock?

编辑:该属性确实实现了INotifyPropertyChanged,并且在未设置占位符时在视图模型中更新绑定.

解决方法:

TextBox的PlaceholderText在失去焦点时不会更改TextBox行为.

您可以尝试为Text属性显式使用“TwoWay”绑定模式,而不是“默认”绑定模式.

<TextBox PlaceholderText="Placeholder" Text="{x:Bind PropertyName, Mode=TwoWay}" />

确保将View的DataContext设置为viewmodel,如下所示

    public MainPage()
    {
        this.DataContext = new MainViewModel();

        this.InitializeComponent();            
    }

有关绑定模式的更多信息,请参阅

https://msdn.microsoft.com/en-us/library/windows/apps/mt204783.aspx

上一篇:c# – 检测KeyUp事件中的密钥


下一篇:c# – 实时过滤带有TextBox的ListBox