我在代码中有一个对象:
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。请帮忙!
答案 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"
}