写入/读取对象

时间:2012-06-07 14:02:47

标签: windows-phone-7

我想在WP7中编写/读取对象元素的简单方法。有些东西不能正常工作。我的思维方式和我已经做过的事情是这样的:

首先,我创建一个代表我的对象的类。我添加静态字符串只是为了看看是否一切正常:

namespace SimpleObject.Objects
{
    public class Entry
    {
        public string entrytitle { get; set; }
        public string entrycomment { get; set; }
        public string entrycat = "works";

        public Entry() { }
        public Entry(string Entrytitle, string Entrycomment, string Entrycat)
        {

            this.entrytitle = Entrytitle;
            this.entrycomment = Entrycomment;
            this.entrycat = Entrycat;
        }

        public string entry { get; set; }

    }
}

然后,正如我在一些文章中读到的,我需要在App.xaml.cs中进行一些更改。接下来我们就去了:

  

使用SimpleObject.Objects;

在App()之前我把它:

  

public static Entry E;

然后在App()中:

UnhandledException += new EventHandler<ApplicationUnhandledExceptionEventArgs>(Application_UnhandledException);

E = new Entry();

InitializeComponent();

然后我的UI是两页。一个是输入数据的表单,第二个是读取数据。在应用栏按钮下,我有:

private void ApplicationBarIconButton_Click(object sender, System.EventArgs e)
        {
            Entry E = new Entry
            {
                entrytitle = TitleTextBox.Text,
                entry = CommentTextBox.Text,
            };

            this.NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));
            MessageBox.Show("Category added!");

        }

显示结果的最后一页:

private void button1_Click(object sender, RoutedEventArgs e)
        {
            TextBlock1.Text = App.E.entrycat;
            TextBlock2.Text = App.E.entrytitle;
        }

第二个TextBlock没有给我任何东西......

2 个答案:

答案 0 :(得分:0)

您永远不会设置全局静态值。在按钮单击中,它应该是:

private void ApplicationBarIconButton_Click(object sender, System.EventArgs e)
{
    App.E.entrytitle = TitleTextBox.Text,
    App.E.entrycat = CommentTextBox.Text,

    this.NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));
}

答案 1 :(得分:0)

另一种选择是放弃你基本上只用来将值从一个页面传递到下一个页面的全局变量。

您可以使用查询字符串值执行此操作,就像在Web应用程序中一样,并在页面加载处理程序中选择它们。

private void ApplicationBarIconButton_Click(object sender, System.EventArgs e)
{
    this.NavigationService.Navigate(new Uri("/Page2.xaml?title=TitleTextBox.Text&comment=CommentTextBox.Text", UriKind.Relative));
}