我跟随此示例:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj244365%28v=vs.105%29.aspx
当我第一次启动应用程序时,我想将某些项目添加到列表中,这些项目将无法删除。所以在App.xaml.cs中我有:
private void Application_Launching(object sender, LaunchingEventArgs e)
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
List<MyConnection.locationList.locations> source = new List<MyConnection.locationList.locations>();
if (!settings.Contains("firstrun"))
{
source.Add(new MyConnection.locationList.locations("Dulles, VA"));
source.Add(new MyConnection.locationList.locations("Dulles, VA (Q)"));
}
}
在我的locationList.xaml.cs(这是longListSelector的位置)我有:
public locationList()
{
InitializeComponent();
List<locationSelectorClass.locationChoice<locations>> DataSource = locationSelectorClass.locationChoice<locations>.CreateGroups(source,
System.Threading.Thread.CurrentThread.CurrentUICulture,
(locations s) => { return s.LastName; }, true);
}
public class locations
{
public string locName
{
get;
set;
}
public locations(string locName)
{
this.locName = locName;
}
}
显然,它说它无法找到源代码,所以如何指示它查看App.xaml.cs或者如何在源代码中调用源代码&#39; #39;已被创建?
我已经尝试过&#34; MyConnection.App.xxxx&#34;但它并没有给我一个选择#34; source&#34;。
答案 0 :(得分:2)
如果您想使用Myconnection.App.xxxx
你必须公开来源,如果你想获得你必须写的信息
List<MyConnection.locationList.locations> source;
private void Application_Launching(object sender, LaunchingEventArgs e)
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
source = new List<MyConnection.locationList.locations>();
if (!settings.Contains("firstrun"))
{
source.Add(new MyConnection.locationList.locations("Dulles, VA"));
source.Add(new MyConnection.locationList.locations("Dulles, VA (Q)"));
}
}
现在您可以获取信息。然而,使用静力学并不总是最好的方法。这意味着您可以在locationlist()构造函数中进行搜索。 或者您可以通过导航解析一些信息。但是,对于第一个示例,您建议的方法可以看到代码,或者在构造函数中加载信息是最好的。
<强>附加强>
如果要在列表中添加/删除条目并在GUI中显示它们,则应使用ObservableCollection而不是List。
答案 1 :(得分:1)
您不必在应用程序的Application_Launching
事件中执行此操作。您可以在视图/控件的构造函数中执行此操作。所以你可以直接访问它。
但是,如果您想这样做 - 那么一旦您创建了列表 - 将其保存到IsolatedStorageSettings
然后在您的控件中将其恢复到新对象中。在那里,您可以访问列表和位置列表。如果您碰巧使用绑定,那么在控件的构造函数中,您还必须指定this.DataContext = this;
- 以便它知道在哪里查找您的位置列表。
如果您使用的是MVVM,那么您将指定viewmodel作为您的datacontext,并从您的viewmodel中的IsolatedStorageSettings
获取位置列表。