XAML-Binding von Eigentum
Ich habe das Kontrollkästchen in meinem XAML+C# - Windows Store-Anwendung. Auch ich habe bool-Eigenschaft: WindowsStoreTestApp.SessionData.RememberUser
was ist public und static.
Ich will Kontrollkästchen die Eigenschaft IsChecked
konsequent zu sein (oder gebunden, oder mapped), um diese bool-Eigenschaft.
Habe ich versucht, dieses:
XAML
<CheckBox x:Name="chbRemember1" IsChecked="{Binding Mode=TwoWay}"/>
C#
chbRemember1.DataContext = SessionData.RememberUser;
Code für die Eigenschaft:
namespace WindowsStoreTestApp
{
public class SessionData
{
public static bool RememberUser { get; set; }
}
}
Aber es scheint nicht zu funktionieren. Können Sie mir helfen?
- Können Sie näher erläutern, was funktioniert nicht daran? Ist es zwei-Wege-Aktualisierung funktioniert nicht? Tut Sie es nicht, alle am arbeiten? Auch kann man den code für SessionData (vor allem RememberUser)? Das wird uns helfen, das problem zu diagnostizieren.
- Immer wenn einer von Ihnen ändert, der zweite sollte sich ebenso ändern.
- Je nachdem, was ich ändern, das mapping funktioniert nicht. Ich habe versucht, ändern Sie die Eigenschaft im code, checkbox den Haken nicht. Versucht gegenüber, checked checkbox, dann Anzeige im debugger-Eigenschaft nicht ändern
- Ich Liebe klassische Fragen wie diese. Überprüfen Sie heraus diese Bindung Spaziergang durch blog.jerrynixon.com/2012/10/xaml-binding-basics-101.html und der Fokus auf die INotifyPropertyChanged.
- Danke, ich dachte nur, es ist integriert und einfach zu bedienen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie implementieren, irgendeine form der Benachrichtigung ändern, um Ihren check-box "bewusst" zu sein, der alle änderungen an der Immobilie. Die beste Wette ist, um verwenden Sie eine der vielen MVVM-frameworks da draußen, wenn nicht, implementieren
INotifyPropertyChanged
in der ViewModel.Typischerweise in WPF, wir setzen Sie nicht den DataContext von einzelnen controls aber DataContext des Fensters oder das Benutzersteuerelement auf ein ViewModel...
Hier ist ein Beispiel für eine Eigenschaft mit der änderungsmitteilung durch eine der MVVM-frameworks:
Wie Sie sehen können, eine einfache automatisch implementierte Eigenschaft kann nicht verwendet werden für die Datenbindung in WPF...
Ich würde empfehlen, werde durch Datenbindung Überblick über auf der MSDN-Website...
Können Sie keine Bindung an statische Eigenschaften statische Eigenschaften können nicht erhöhen das PropertyChanged-Ereignis. Sie, natürlich, müssen INotifyPropertyChanged. Aber das ist nicht relevant mit statischen Eigenschaften. Sie können sich einfach nicht binden, um statische Eigenschaften. (Sie können in WPF und Silverlight)
Versuchen wie diese, beachten Sie, dass die Eigenschaft nicht statisch, sondern das Feld sichern ist: