0

我是新來的雙向下面的代碼在wp7.The綁定不自動分配文本框的值對象並返回null。雙向綁定工作不

的Xaml:

<Grid x:Name="ContentPanel" DataContext="{Binding usd}" Grid.Row="1" Margin="14,10,10,-10" > 
     <TextBox Text="{Binding UserName,Mode=TwoWay}" Name="txt1" Width="200" Height="60" FontSize="20" Margin="128,48,128,499"/> 
     <TextBox Text="{Binding Password,Mode=TwoWay}" Name="txt2" Width="200" Height="60" FontSize="20" Margin="128,263,128,284"/> 
     <TextBox Text="{Binding Email,Mode=TwoWay}" Name="txt3" Width="200" Height="60" FontSize="20" Margin="128,159,128,388"/> 
     <Button Content="Send" FontSize="18" Margin="179,413,170,129" 
     Click="Button_Click_1" /> 
    </Grid> 

CS:

public class UserLogin:INotifyPropertyChanged 
    { 
     private string _username; 
     private string _pwd; 
     private string _email; 

     public string UserName 
     { 
      get 
      { 
       return _username; 
      } 
      set 
      { 
       _username = value; 
       OnPropertyChanged("UserName"); 
      } 
     } 
     public string Password 
     { 
      get 
      { 
       return _pwd; 
      } 
      set 
      { 
       _pwd = value; 
       OnPropertyChanged("Password"); 
      } 
     } 
     public string Email 
     { 
      get 
      { 
       return _email; 
      } 
      set 
      { 
       _email = value; 
       OnPropertyChanged("Email"); 
      } 
     } 
     public event PropertyChangedEventHandler PropertyChanged; 
     protected void OnPropertyChanged(string name) 
     { 
      PropertyChangedEventHandler handler = PropertyChanged; 
      if (handler != null) 
      { 
       handler(this, new PropertyChangedEventArgs(name)); 
      } 
     } 
    } 

實例化:

public UserLogin usd = null; 

在構造函數中:

usd = new UserLogin(); 

按鈕ClickEvent:在消息框中聲明

private void Button_Click_1(object sender, RoutedEventArgs e) 
     { 

//   ContentPanel.DataContext = usd; 

      MessageBox.Show(usd.Email); 
     } 

空引用異常。謝謝..

回答

1

你可以綁定到公共屬性 - 所以你:的DataContext =「{結合美元}」應該是錯誤的,因爲美元只是一個場

順便說一句,如果你設置這個在您的男星也一樣,一個除去XAML綁定它可以工作

usd = new UserLogin(); 
ContentPanel.DataContext = usd; 
+0

GR8 ..你的建議工作GR8。但後來爲什麼不能我們設置在XAML數據綁定? –

+1

因爲你的美元沒有被設置爲一個屬性它只是一個變量.... 做一件事 公衆用戶登陸美元{獲得;設置;} USD = NULL; –

0

關於你的控制/頁(其中XAML屬於它)

  1. 它的DataContext應該包含美元 PR operty
  2. ,物業也應該通知物業
  3. 當然你的控制/頁的DataContext類也應該實現INotifyPropertyChanged的
0

,因爲你的美元沒有被設置爲一個屬性它只是一個變量....做一個件事

public UserLogin usd {get;set;} 
usd = null;