2013-12-20 20 views
-1

我想捕獲列表框中所選項目的值,並將該值存儲到我的數據庫中。我的目標是當我選擇「男性」(或「女性」)時,「男性」(或「女性」)將被添加到數據庫中的性別[列]中,但我不知道該怎麼做。如何捕獲列表框項目的值

MyDatabase的:

[Table] 
    public class Member : INotifyPropertyChanged, INotifyPropertyChanging 
    { 
     // Define ID: private field, public property, and database column. 
     private int _ID; 

     [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = "INT NOT NULL Identity", CanBeNull = false, AutoSync = AutoSync.OnInsert)] 
     public int ID 
     { 
      get { return _ID; } 
      set 
      { 
       if (_ID != value) 
       { 
        NotifyPropertyChanging("ID"); 
        _ID = value; 
        NotifyPropertyChanged("ID"); 
       } 
      } 
     } 

     private string _FullName; 

     [Column] 
     public string FullName 
     { 
      get { return _FullName; } 
      set 
      { 
       if (_FullName != value) 
       { 
        NotifyPropertyChanging("FullName"); 
        _FullName = value; 
        NotifyPropertyChanged("FullName"); 
       } 
      } 
     } 



     private string _Address; 
     [Column] 
     public string Address 
     { 
      get { return _Address; } 
      set 
      { 
       if (_Address != value) 
       { 
        NotifyPropertyChanging("Address"); 
        _Address = value; 
        NotifyPropertyChanged("Address"); 
       } 
      } 
     } 

     private string _Gender; 

     [Column] 
     public string Gender 
     { 
      get { return _Gender; } 
      set 
      { 
       if (_Gender != value) 
       { 
        NotifyPropertyChanging("Gender"); 
        _FullName = value; 
        NotifyPropertyChanged("Gender"); 
       } 
      } 
     } 
     #region INotifyPropertyChanged Members 

     public event PropertyChangedEventHandler PropertyChanged; 

     // Used to notify that a property changed 
     private void NotifyPropertyChanged(string propertyName) 
     { 
      if (PropertyChanged != null) 
      { 
       PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
      } 
     } 

     #endregion 
     #region INotifyPropertyChanging Members 

     public event PropertyChangingEventHandler PropertyChanging; 

     // Used to notify that a property is about to change 
     private void NotifyPropertyChanging(string propertyName) 
     { 
      if (PropertyChanging != null) 
      { 
       PropertyChanging(this, new PropertyChangingEventArgs(propertyName)); 
      } 
     } 

     #endregion 

    } 
    public class GenderPicker 
    { 
     public string sex 
     { 
      get; 
      set; 
     } 

    } 

我ListPicker列表:

public Add() 
    { 
     InitializeComponent(); 
     this.DataContext = App.MainViewModel; 
     List<GenderPicker> picker = new List<GenderPicker>(); 
     picker.Add(new GenderPicker() { sex = "Male" }); 
     picker.Add(new GenderPicker() { sex = "FeMale" }); 
     this.ListPicker.ItemsSource = picker; 


    } 

我的添加按鈕:我不知道什麼可以填寫?????????????? ?

成員是表格。列是FullName |地址|性別

private void Add_Click(object sender, EventArgs e) 
    { 
     if ((addaddress.Text.Length > 0) && (addfullname.Text.Length > 0)) 
     { 
      Member newInfo = new Member 
      { 
       FullName = addfullname.Text, 
       Address = addaddress.Text, 
       Gender = ???????????????? 

      }; 
      App.MainViewModel.Addinfo(newInfo); 
     } 
    } 

而我選擇在LIstpicker改變:

private void ListPicker_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     var samplesex =(GenderPicker)ListPicker.SelectedItem; 
     var selectedsex = (samplesex.sex).ToString(); 

    } 
+0

你試圖連接什麼樣的數據庫?您是否研究過使用.net連接特定數據庫?更多信息MSDN最有可能在System.Data命名空間 – weeksdev

+0

我已經添加我的數據庫中的問題... – user3123487

回答

2

你試過了嗎? Found on stackoverflow.com

(ListPicker.SelectedItem as GenderPicker).sex.ToString() 

或在你的榜樣:

private void Add_Click(object sender, EventArgs e) 
{ 
    if ((addaddress.Text.Length > 0) && (addfullname.Text.Length > 0)) 
    { 
     Member newInfo = new Member 
     { 
      FullName = addfullname.Text, 
      Address = addaddress.Text, 
      Gender = (ListPicker.SelectedItem as GenderPicker).sex.ToString() 

     }; 
     App.MainViewModel.Addinfo(newInfo); 
    } 
} 

你可以/應該做一個屬性有一個默認值,因此您沒有收到NullReference例外,如果ListPicker有選擇NULL。

+0

非常感謝...我工作正常與你的答案 – user3123487

0

你是否厭倦了gender = picker.SelectedValue.ToString();

Here是使用在Windows Phone的ListBox控制的更多信息。

0

這個答案是關於數據結構的。

爲什麼你使用'GenderPicker'類來選擇性別? GenderPicker類有功能嗎?

爲什麼不使用枚舉器?

public enum Gender: int 
{ 
    Male=0, 
    Female=1, 
    Pat=-1 
} 

這將允許你只存儲一個INT列在你的數據庫。這也很容易轉換回性別。

int GenderInt = Gender.Pat; // -1 
Gender whatIsPat = (Gender)GenderInt; // Gender.Pat 
相關問題