我有一个带有“保存”按钮的Windows应用商店XAML应用,该按钮指向我的ViewModel中的ICommand属性。
<Button Content="Save"
Command="{Binding DataContext.SaveNewNote, ElementName=grid, Mode=OneWay}"
CommandParameter="{Binding DataContext.CurrentItem, ElementName=grid}" />
在我的Note模型的propertychanged事件中,每次(每次击键)都会触发CanExecutedChanged事件。但是,只有在离开其中一个相关文本框的焦点后,此按钮才会启用/禁用。
换句话说,有一个“名称”文本框。如果String.IsNullOrWhiteSpace(Name.Text),则将CanExecute设置为false。这似乎是每次按键都会执行的。
我希望看到这个绑定的Save按钮启用和禁用每次击键。但是,只有当我从文本框中跳出时,才会看到按钮启用/禁用。
如何在每次击键时获得此绑定按钮以尊重CanExecuteChanged事件,而不是在texbox失去焦点时?
答案 0 :(得分:0)
@will和@patrick对原帖的评论都有正确的答案。为此,您必须设置&#34; UpdateSourceTrigger&#34;到&#34; PropertyChanged&#34;这给出了预期的结果。
<TextBox Grid.Row="1" PlaceholderText="Enter a short description here"
Text="{Binding NoteAbstract, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}">
</TextBox>