我有一些文本框,我想为其设置PlaceholderText
属性。每个框的文本绑定到基础视图模型的属性。现在在XAML中设置占位符就像那样
<TextBox PlaceholderText="Placeholder" Text={Binding PropertyName} />
我注意到,当文本框失去焦点时,视图模型的属性不再更新。 虽然没有占位符,但绑定工作正常。
这种行为是否有意,是否有任何变通方法,或者我是否必须坚持使用描述每个框的预期输入的经典TextBlock
?
编辑:该属性确实实现INotifyPropertyChanged
,并且在未设置占位符时,视图模型中的绑定会更新。
答案 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