如何将TextBoxes Text绑定到XAML中我的类中的全局变量? 顺便说一句,这适用于Windows Phone。
以下是代码:
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;
}
}
}
我想将Textboxes文本绑定到“is_verifying”。
感谢。
答案 0 :(得分:15)
首先,您只能绑定到属性,因此您需要添加一个getter和setter。
public static bool is_verifying { get; set; }
接下来,您可以在此处将表单的DataContext
设置为您的类,并使用简单的绑定:
"{Binding is_verifying}"
或者在表单的资源中创建对类的引用,并像这样引用它:
<Window.Resources>
<local:Login x:Key="LoginForm"/>
</Window.Resources>
...
<TextBox Text="{Binding Source={StaticResource LoginForm}, Path=is_verifying}"/>
答案 1 :(得分:3)
您无法绑定到某个字段,您需要将其设为属性,然后,除非您实现某种通知机制,否则您将不会收到有关更改的通知。通过实施INotifyPropertyChanged
或将属性设为DependencyProperty
。
当您拥有某个属性时,通常可以使用x:Static
标记扩展名绑定它。
但是绑定到静态属性需要一些技巧,这可能不适用于您的情况,因为它们需要创建类的虚拟实例或使其成为单例。另外我认为至少在Windows Phone 7中x:Static
不可用。因此,您可能需要考虑将该属性设置为实例属性,可以在单独的ViewModel上设置为DataContext
。