XAML-Datenbindung an eine Globale variable?
Wie kann ich binden, Textfelder Text auf eine Globale variable in meiner Klasse in XAML?
Dies ist für Windows Phone, die durch die Art und Weise.
Hier ist der code:
namespace Class
{
public partial class Login : PhoneApplicationPage
{
public static bool is_verifying = false;
public Login()
{
InitializeComponent();
}
private void login_button_Click(object sender, RoutedEventArgs e)
{
//navigate to main page
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute));
}
private void show_help(object sender, EventArgs e)
{
is_verifying = true;
}
}
}
Und ich möchte zu binden, Textfelder text "is_verifying".
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
First off, können Sie nur binden, um die Eigenschaften, so müssen Sie einen getter und setter.
Als Nächstes können Sie entweder die
DataContext
des Formulars werden Ihre Klasse hier, und binden Sie mit einem einfachen:Oder erstellen Sie einen Verweis auf die Klasse, in der die Ressourcen des Formulars und verweisen, etwa so:
Können Sie nicht binden an einen Bereich, den Sie brauchen, um es eine Eigenschaft, und immer noch ist, dann wirst du nicht über änderungen benachrichtigt werden, es sei denn, Sie implementieren eine Art von notification-Mechanismus, der erreicht werden kann, z.B. durch die Umsetzung
INotifyPropertyChanged
oder indem die Eigenschaft einerDependencyProperty
.Wenn Sie eine Eigenschaft haben, können Sie in der Regel verwenden Sie die
x:Static
markup-Erweiterung zu binden.Aber die Bindung an eine statische Eigenschaft erfordert einige tricks, die möglicherweise nicht in Ihrem Fall, da Sie erfordern entweder eine dummy-Instanz Ihrer Klasse oder ein singleton. Auch ich denke, dass zumindest in der Windows phone 7
x:Static
ist nicht verfügbar. So möchten Sie vielleicht zu erwägen, die Eigenschaft einer Instanz-Eigenschaft, vielleicht auf einer separaten ViewModel, welches anschließend können Sie festlegen, wie einDataContext
.