有约束力的错误

时间:2012-08-21 09:05:29

标签: wpf xaml binding

在一个窗口中,我有一个文本框,我正在使用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中没有绑定错误

1 个答案:

答案 0 :(得分:1)

在绑定中,设置UpdateSourceTrigger = PropertyChanged。使用TextBox,默认值为LostFocus,因此在您选中之前,您将获得一个空字符串。