1

在一个窗口中,我有一个文本框,我正在使用 canExecute 函数来检查该字段是否为空。我对文本框中使用的 DependencyProperty 有一个 to-way 绑定。无论如何,它在 CanExecute 中始终为空(编辑:它不是空的,它是空的:“”)。你能告诉我错误在哪里吗?

<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 调试器中没有绑定错误

4

1 回答 1

1

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

于 2012-08-21T09:13:05.697 回答