2
我有一個類實施了INotifyPropertyChanged
。這個類UserInfo
有一個布爾變量isuserLoggedIn。 現在在我的mainform中,我有一個按鈕,它的isEnabled我希望綁定到UserInfo.isuserLoggedIn
。綁定按鈕被啓用到屬性
如何做到這一點?
public class UserInfo : INotifyPropertyChanged
{
private static readonly UserInfo _instance = new UserInfo();
private string username;
private bool isLoggedIn;
public string UserName
{
get { return username; }
set
{
username = value;
NotifyPropertyChanged("UserName");
}
}
public bool UserLoggedIn
{
get { return isLoggedIn; }
set
{
isLoggedIn = value;
NotifyPropertyChanged("UserLoggedIn");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public static UserInfo GetUserInfo()
{
return _instance;
}
}
在主,我有:
public class MainWindow
{
UserInfo currentUser = UserInfo.GetUserInfo();
}
的XAML是:
<Button IsEnabled="{Binding ElementName=currentUser, Path=UserLoggedIn}"/>
但我已經在MainWindow中聲明瞭一個UserInfo類的實例UserInfo currentUser = UserInfo.GetUserInfo();並按鈕具有如下綁定:爲什麼我仍然需要設置DataContext? – xaria 2012-04-05 03:53:34
我認爲你對Silverlight和WPF中數據綁定的工作原理有一點誤解。您的綁定表達式將在視圖的數據上下文中查找匹配屬性。元素綁定是指將一個XAML元素的值綁定到另一個XAML元素的屬性。 – KodeKreachor 2012-04-05 03:59:39