Binding-Taste IsEnabled auf eine Eigenschaft
Habe ich eine Klasse implementiert hat INotifyPropertyChanged
. Diese Klasse UserInfo
hat eine boolean-variable isuserLoggedIn.
Jetzt in meiner mainform habe ich Tasten, deren isEnabled ich Wünsche binden UserInfo.isuserLoggedIn
.
Wie zu tun?
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;
}
}
In der main habe ich:
public class MainWindow
{
UserInfo currentUser = UserInfo.GetUserInfo();
}
XAML:
<Button IsEnabled="{Binding ElementName=currentUser, Path=UserLoggedIn}"/>
InformationsquelleAutor xaria | 2012-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie den DataContext der view eine Instanz der UserInfo-Klasse. Und dann binden Sie die IsEnabled-Eigenschaft der Schaltfläche auf der UserIsLoggedIn Boolesche Eigenschaft auf Ihre UserInfo view-Modell. Hier ist ein Beispiel für die Bindung eines Elements-Attribut an eine Eigenschaft eines entsprechenden view-Modell: vorbei an ein gridview-Steuerelement ausgewählten Element Wert zu einem anderen ViewModel in verschiedenen Usercontrol
Nachdem Sie Bearbeiten, Sie werden wieder brauchen, um DataContext der view auf die currentUser Objekt, dann entfernen Sie die ElementName-Teil der Taste IsEnabled verbindlichen Ausdruck.
Ich denke, Sie haben eine leichte Missverständnisse, wie data binding funktioniert in Silverlight und WPF. Ihre verbindliche Ausdrücke sind auf die Suche nach einer passenden Immobilie auf den datenkontext der view. Element binding bezieht sich auf das binden der Wert einer XAML-element um ein Attribut von einem anderen XAML-element.
InformationsquelleAutor KodeKreachor
Können Sie binden
IsEnabled
zuLength
des Benutzername-Textfeld:InformationsquelleAutor stt106