对不起,如果这听起来像是一个完全愚蠢的问题,但它确实让我感到难过!!
因此,应用程序由许多页面组成,这些页面从一个页面导航到另一个页面,允许用户操作数据。在第一页(PivotPage)上,数据被加载到类(bay9)中定义的List中。所有这一切都运行良好,我可以轻松地绑定数据并在它只是在一页上操作它。问题是我希望用户能够操纵或搜索此列表'从任何其他页面。
我所拥有的是基本课程;
class bay9
{
public override string ToString()
{
return "Name: " + SetZone + " ID: " + SetThermocouple;
}
public string setzone;
public string SetZone
{
get { return setzone; }
set { setzone = value; }
}
public string setthermocouple;
public string SetThermocouple
{
get { return setthermocouple; }
set { setthermocouple = value; }
}
public string setdata;
public string SetData
{
get { return setdata; }
set { setdata = value; }
}
}
输入数据的基本页面;
public sealed partial class PivotPage : Page
{
private NavigationHelper navigationHelper;
private ObservableDictionary defaultViewModel = new ObservableDictionary();
public PivotPage()
{
this.InitializeComponent();
this.navigationHelper = new NavigationHelper(this);
this.navigationHelper.LoadState += this.NavigationHelper_LoadState;
this.navigationHelper.SaveState += this.NavigationHelper_SaveState;
Bay9 = new List<bay9>();
AddBay9();
}
List<bay9> Bay9;
public void AddBay9()
{
Bay9.Add(new bay9 { SetZone = "ZONE1C" });
Bay9.Add(new bay9 { SetZone = "ZONE1A" });
Bay9.Add(new bay9 { SetZone = "ZONE1R" });
cvs9.Source = Bay9;
}
}
和我想要访问上一页输入的数据的页面,但似乎不能这样做?
public sealed partial class RecorderPage : Page
{
private NavigationHelper navigationHelper;
private ObservableDictionary defaultViewModel = new ObservableDictionary();
public RecorderPage()
{
this.InitializeComponent();
this.navigationHelper = new NavigationHelper(this);
this.navigationHelper.LoadState += this.NavigationHelper_LoadState;
this.navigationHelper.SaveState += this.NavigationHelper_SaveState;
Bay9 = new List<bay9>();
LoadThermocouples();
}
List<bay9> Bay9;
private void NextPageButton(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(MainPage));
}
void LoadThermocouples()
{
int i = 0;
foreach (bay9 aPart in Bay9)
{
var textBlock = new TextBlock { Text = "header ", FontSize = 55 };
var textBox = new TextBox { Name = i.ToString(), };
ThermocoupleStackPanel.Children.Add(textBlock);
ThermocoupleStackPanel.Children.Add(textBox);
i++;
}
}
}
我认为问题在于再次声明Bay9 = new List<bay9>();
但不知道我还需要做什么。现在它的列表是空的。
请您帮助我了解如何从此页面访问此列表:)
非常感谢
答案 0 :(得分:2)
我认为处理此问题的典型方法是将Bay9
存储在可从应用程序中的任何位置访问的ViewModel类中。请参阅this Stack Overflow question和this article。
在我自己的应用中,我已经在链接的Stack Overflow问题中使用了这项技术 - 使其成为App
类的静态属性,这对我来说很好。
答案 1 :(得分:0)
尝试将class bay9
更改为public static class bay9
。这样,它就可以从应用程序的任何地方访问。
答案 2 :(得分:0)
最好的办法是看看Microsoft建议用于开发名为MVVM(model-view-viewmodel)的Windows Phone应用程序的设计模式,它允许您在整个应用程序中创建更好的数据绑定。
以下是通过MSDN提供的教程的链接:Implementing the Model-View-ViewModel pattern for Windows Phone 8