9

如何在 XAML 中将 TextBoxes Text 绑定到我的类中的全局变量?顺便说一句,这是针对 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;
        }
      }

    }

我想将文本框文本绑定到“is_verifying”。

谢谢。

4

2 回答 2

16

首先你只能绑定到属性,所以你需要添加一个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}"/>
于 2012-11-21T14:09:28.783 回答
4

您不能绑定到一个字段,您需要将其设置为属性,并且仍然不会通知您更改,除非您实现某种通知机制,这可以通过例如实现INotifyPropertyChanged或通过制作来实现财产 a DependencyProperty

当你有一个属性时,你通常可以使用x:Static标记扩展来绑定它。

但是绑定到静态属性需要一些技巧,这可能不适用于您的情况,因为它们需要创建类的虚拟实例或使其成为单例。另外我认为至少在 Windows phone 7x:Static中不可用。因此,您可能需要考虑将属性设置为实例属性,可能在单独的 ViewModel 上,然后您可以将其设置为DataContext.

于 2012-11-21T14:09:24.913 回答