2013-02-27 14 views
0

我已經創建了Windows Phone 8的項目,增加了名稱到本地SQL CE database.I我在加的MainPage一個單一命名選項到本地數據庫.xaml.cs文件並且它已成功添加,但運行該應用程序時,它不會顯示在listbox/longlistselector中。我真的很感激任何幫助。我具有以下設置:項目的數據綁定到LongListSelector /列表框無法在Windows顯示電話8本地數據庫

表具有以下所示的結構:

namespace LocalDB 
{ 
[Table] 
public class Names : INotifyPropertyChanged, INotifyPropertyChanging 
{ 

    [Column(IsPrimaryKey = true, IsDbGenerated = true, CanBeNull = false, AutoSync = AutoSync.OnInsert)] 
    private int id; 

    public int F_Id 
    { 
     get { return id; } 
     set 
     { 
      NotifyPropertyChanging("F_Id"); 
      id = value; 
      NotifyPropertyChanged("F_Id"); 
     } 
    } 


    [Column] 
    private string f_name; 

    public string F_Name 
    { 
     get { return f_name; } 
     set 
     { 
      NotifyPropertyChanging("F_Name"); 
      f_name = value; 
      NotifyPropertyChanged("F_Name"); 
     } 
    } 

    [Column] 
    private string l_name; 

    public string L_Name 
    { 
     get { return l_name; } 
     set 
     { 
      NotifyPropertyChanging("L_Name"); 
      l_name = value; 
      NotifyPropertyChanged("L_Name"); 
     } 
    } 



    #region Implementation of INotifyPropertyChanged 

    public event PropertyChangedEventHandler PropertyChanged; 

    private void NotifyPropertyChanged(string propertyName) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 
    #endregion 

    #region Implementation of INotifyPropertyChanging 

    public event PropertyChangingEventHandler PropertyChanging; 

    private void NotifyPropertyChanging(string propertyName) 
    { 
     if (PropertyChanging != null) 
     { 
      PropertyChanging(this, new PropertyChangingEventArgs(propertyName)); 
     } 
    } 
    #endregion 


} 
} 

爲Load.xaml.cs代碼(從本地DB檢索數據):

namespace LocalDB 
{ 
public partial class Load : PhoneApplicationPage 
{ 
    private const string Con_String = @"isostore:/names.sdf"; 
    String fname, lname; 

    public Load() 
    { 
     InitializeComponent(); 


    } 
    public IList<Names> GetNames() 
    { 
     IList<Names> namesList = null; 
     using (NamesDataContext NamesDB = new NamesDataContext(Con_String)) 
     { 
      IQueryable<Names> query = from c in NamesDB.Names select c; 
      namesList = query.ToList(); 

     } 

     return namesList; 
    } 
    private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e) 
    { 
     IList<Names> listnames = this.GetNames(); 
     List<NameItems> nm = new List<NameItems>(); 
     foreach (Names mynames in listnames) 
     { 

      fname = mynames.F_Name.ToString(); 
      lname = mynames.L_Name.ToString(); 



      nm.Add(new NameItems() { fname = fname, lname = lname }); 

     } 

     namelonglistselector.ItemsSource = nm; 
    } 

} 
} 
**the xaml code with LongListSelector:** 
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
    <phone:LongListSelector Name="namelonglistselector"> 
      <phone:LongListSelector.ItemTemplate> 
       <DataTemplate> 
        <StackPanel> 
        <TextBlock Name="fnametextblock" Text="{Binding fname}"/> 
        <TextBlock Name="lnametextblock" Text="{Binding lname}"/> 
        </StackPanel> 
       </DataTemplate> 
      </phone:LongListSelector.ItemTemplate> 
     </phone:LongListSelector> 
    </Grid> 
    </Grid> 

**the collection class Nameitems.cs** 
namespace LocalDB 
{ 
class NameItems 
{ 
    public string fname { get; set; } 
    public string lname { get; set; } 
} 

}

回答

1

綁定代碼沒有出現任何問題。

你肯定PhoneApplicationPage_Loaded_1被稱爲?從您發佈的代碼中,沒有任何跡象表明它是。

也許你需要添加處理程序到加載的事件。更新頁面的構造函數,像這樣:

public Load() 
{ 
    InitializeComponent(); 

    this.Loaded += this.PhoneApplicationPage_Loaded_1; 
} 

示例代碼爲:MainPage.xaml & MainPage.xaml.cs

更新基於在評論

無信息鏈接攝製項目,因爲有中沒有記錄被顯示要顯示的數據庫。 Getnames()正在返回一個空列表。
原因是數據庫爲空。

當你保存數據您呼叫InsertOnSubmit()但從未提交更改和交易永遠不會提交到磁盤。撥打ChildDB.Names.InsertOnSubmit(names);後,您需要致電ChildDB.SubmitChanges();

這將保存數據到數據庫中,所以當你去到頁面查看細節有細節顯示,他們都顯示在頁面上。

+0

我已經做到了這一點,並仍正在顯示沒有結果,奇怪的是,如果我設置的項目了Windows Phone 7項目,代碼運行良好,並顯示結果.. – ali 2013-02-27 11:06:05

+0

@ali你可以提供一個完整的攝製。它作爲一個WP8.0項目對我來說工作得很好,但我僞裝了數據庫位。 – 2013-02-27 11:10:54

+0

有互聯網問題,,這是該項目請親切看看並協助。謝謝 https://skydrive.live.com/redir?resid=9371A942B42EEAD5!107&authkey=!AGXQkZHaFHqFBms – ali 2013-02-27 15:26:11

相關問題