在一个窗口中,我有一个文本框,我正在使用canExecute函数来检查该字段是否为空。我在文本框中使用的DependencyProperty上有一个to-way绑定。无论如何,它在CanExecute中始终为null(编辑:它不为空,它是空的:“”)。你能告诉我哪里出错了吗?
<TextBox Text="{Binding Path=StatusName, ElementName=Window, Mode=TwoWay}" x:Name="StatusNameTextBox" />
public String StatusName
{
get { return (String)GetValue(StatusNameProperty); }
set { SetValue(StatusNameProperty, value); }
}
public static readonly DependencyProperty StatusNameProperty =
DependencyProperty.Register("StatusName", typeof(String), typeof(AddStatusWindow), new UIPropertyMetadata(""));
private void AddNewStatusCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = !String.IsNullOrEmpty(StatusName);
}
PS:我在VS debogger中没有绑定错误
答案 0 :(得分:1)
在绑定中,设置UpdateSourceTrigger = PropertyChanged。使用TextBox,默认值为LostFocus,因此在您选中之前,您将获得一个空字符串。