UWP TextBox.Text 使用 PlaceholderText 时绑定不更新
UWP TextBox.Text binding not updating when using PlaceholderText
我有一些文本框,我想为其设置 PlaceholderText
属性。每个框的文本都绑定到基础视图模型的 属性。现在在 XAML 中设置占位符时
<TextBox PlaceholderText="Placeholder" Text={Binding PropertyName} />
我注意到,当文本框失去焦点时,视图模型的属性不再更新。
而没有占位符,绑定工作正常。
这种行为是故意的吗?如果有任何解决方法,或者我是否必须坚持使用经典的 TextBlock
来描述每个框的预期输入?
编辑: 属性 确实实现了 INotifyPropertyChanged
并且在未设置占位符时在视图模型中更新绑定。
TextBox 的 PlaceholderText 在失去焦点时不会更改 TextBox 的行为。
您可以尝试为文本 属性 显式使用 "TwoWay" 绑定模式,而不是 "Default" 绑定模式。
<TextBox PlaceholderText="Placeholder" Text="{x:Bind PropertyName, Mode=TwoWay}" />
确保您的视图的 DataContext 设置为您的视图模型,如下所示
public MainPage()
{
this.DataContext = new MainViewModel();
this.InitializeComponent();
}
有关绑定模式的详细信息,请参阅
https://msdn.microsoft.com/en-us/library/windows/apps/mt204783.aspx
我有一些文本框,我想为其设置 PlaceholderText
属性。每个框的文本都绑定到基础视图模型的 属性。现在在 XAML 中设置占位符时
<TextBox PlaceholderText="Placeholder" Text={Binding PropertyName} />
我注意到,当文本框失去焦点时,视图模型的属性不再更新。 而没有占位符,绑定工作正常。
这种行为是故意的吗?如果有任何解决方法,或者我是否必须坚持使用经典的 TextBlock
来描述每个框的预期输入?
编辑: 属性 确实实现了 INotifyPropertyChanged
并且在未设置占位符时在视图模型中更新绑定。
TextBox 的 PlaceholderText 在失去焦点时不会更改 TextBox 的行为。
您可以尝试为文本 属性 显式使用 "TwoWay" 绑定模式,而不是 "Default" 绑定模式。
<TextBox PlaceholderText="Placeholder" Text="{x:Bind PropertyName, Mode=TwoWay}" />
确保您的视图的 DataContext 设置为您的视图模型,如下所示
public MainPage()
{
this.DataContext = new MainViewModel();
this.InitializeComponent();
}
有关绑定模式的详细信息,请参阅
https://msdn.microsoft.com/en-us/library/windows/apps/mt204783.aspx