如何在xaml中设置绑定到我自己的变量

时间:2010-03-19 19:20:01

标签: wpf data-binding xaml

我在代码中有一个对象:

public  class UserLogin
    {
        bool _IsUserLogin = false;

        public bool IsUserLogin
        {
            get { return _IsUserLogin; }
            set { _IsUserLogin = value; }
        }

        public UserLogin()
        {
            _IsUserLogin = false;
        }
    }
    ....
    public static UserLogin LoginState;
    .....
    LoginState = new UserLogin();

我需要设置Button.IsEnabled属性的绑定。即当用户尚未登录时 - 某些按钮被禁用。怎么做到这一点?我试过xaml:

<Button DataContext="LoginState" IsEnabled="{Binding Path=IsUserLogin}">

但是,这不起作用,OutputWindow说:System.Windows.Data错误:39:BindingExpression路径错误:'对象'上找不到'IsUserLogin'属性。 我也尝试在代码中将Button.DataContext属性设置为LoginState,但是有XamlParseException。我也读过这个[WPF - Binding in XAML to an object created in the code behind但仍然无法设置绑定。

[1]:WPF - Binding in XAML to an object created in the code behind。请帮忙!

1 个答案:

答案 0 :(得分:1)

您收到XamlException,导致编译器找不到名为“LoginState”的(XAML)-Element。

在过程代码中设置按钮的DataContext。然后它应该工作。

public void SetDataContextOfButton() {
  UserLogin login = new UserLogin();
  button.DataContext = login; //Assumes that you name your Button in XAML with x:Name="button"
}