我已經創建了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; }
}
}
我已經做到了這一點,並仍正在顯示沒有結果,奇怪的是,如果我設置的項目了Windows Phone 7項目,代碼運行良好,並顯示結果.. – ali 2013-02-27 11:06:05
@ali你可以提供一個完整的攝製。它作爲一個WP8.0項目對我來說工作得很好,但我僞裝了數據庫位。 – 2013-02-27 11:10:54
有互聯網問題,,這是該項目請親切看看並協助。謝謝 https://skydrive.live.com/redir?resid=9371A942B42EEAD5!107&authkey=!AGXQkZHaFHqFBms – ali 2013-02-27 15:26:11