使用PlaceholderText时,UWP TextBox.Text绑定不会更新

时间:2016-01-16 16:11:41

标签: c# xaml textbox uwp

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

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

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

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

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

1 个答案:

答案 0 :(得分:6)

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

您可以尝试明确使用&#34; TwoWay&#34; Text属性的绑定模式,而不是&#34;默认&#34;绑定模式。

<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