Как установить привязку в xaml к моей собственной переменной - PullRequest
3 голосов
/ 19 марта 2010

У меня есть объект в коде:

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 Error: 39: Ошибка пути BindingExpression: свойство 'IsUserLogin' не найдено в 'объекте'. Я также попытался установить свойство Button.DataContext для LoginState в коде, но есть исключение XamlParseException. Я также читал этот [ WPF - Привязка в XAML к объекту, созданному в коде , но все еще не может установить привязки.

[1]: WPF - Привязка в XAML к объекту, созданному в коде . Пожалуйста, помогите!

1 Ответ

1 голос
/ 19 марта 2010

Вы получаете исключение XamlException, поскольку компилятор не находит (XAML) -элемент с именем «LoginState».

Установите DataContext кнопки в процедурном коде. Тогда это должно работать.

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