0

XML シリアル化と分離ストレージを使用して、次の画面にいくつかの値を投稿しようとしています。値は textbox から、また textBlock からボタン クリック イベントで次の画面の textBlocks にポストされます。ただし、TextBlock のテキストは次の画面に投稿されず、textBox のテキストのみが投稿されます。デバッグして確認すると、XML は文字列が読み込まれていない "" と表示されます。また、拘束力もありません。なんで?

//MainPage.xaml
        <StackPanel>
                <Button Margin="10"
                Content="Simple Sample"
                Name="btnSimple"
                Click="btnSimple_Click">                    

                </Button>
                <TextBlock TextWrapping="Wrap"   Text="{Binding FirstName, Mode=TwoWay}"/>           
                <TextBlock TextWrapping="Wrap" Text="{Binding MyText, Mode=TwoWay}"/>         

            </StackPanel>

 //MainPage.xaml.cs
        using System;
        using System.Windows;
        using Microsoft.Phone.Controls;    
        using System.IO;
        using System.IO.IsolatedStorage;
        using System.Text;
        using System.Xml.Serialization;       

        namespace WPIsolatedStorage
        {
          public partial class MainPage : PhoneApplicationPage
          {
            // Constructor
              private LastUser _User = new LastUser();
              private const string USER_KEY = "LastUser";
            public MainPage()
            {
              InitializeComponent();
            }

            private void GetUser()
            {
                string xml;

                xml = IsolatedStorageSettings.ApplicationSettings[USER_KEY].ToString();
                using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(xml)))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(LastUser));
                    _User = (LastUser)serializer.Deserialize(ms);
                }
            }

            private void btnSimple_Click(object sender, RoutedEventArgs e)
            {
              NavigationService.Navigate(new Uri("/PageSimple.xaml", UriKind.Relative));
            }

            private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
            {
                if (IsolatedStorageSettings.ApplicationSettings.Contains(USER_KEY))
                    GetUser();

                this.DataContext = _User;            

            }
          }
        }

 //LastUser.cs
    using System.ComponentModel;

    namespace WPIsolatedStorage
    {       

      public class LastUser : INotifyPropertyChanged
      {
        #region INotifyPropertyChanged Event   
        public event PropertyChangedEventHandler PropertyChanged;   
        protected void RaisePropertyChanged(string propertyName)
        {
          if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }   
        #endregion

        #region Private Variables
        private string mFirstName = string.Empty;

        private string mTextBlock = string.Empty;
        #endregion

        #region Public Variables
        public string FirstName
        {
          get { return mFirstName; }
          set
          {
            if (mFirstName != value)
            {
              mFirstName = value;
              RaisePropertyChanged("FirstName");
            }
          }
        }

        public string MyText
    {
        get { return this.mTextBlock; }
        set
        {
            this.mTextBlock = value;
            this.RaisePropertyChanged("MyText");

        }
    }}
    } 

//SeconPage.xaml

 <TextBox Grid.Column="1"
               Grid.Row="0"
               Text="{Binding FirstName, Mode=TwoWay}"
               Name="txtFirstName" />

<TextBlock Grid.Column="1" Name="MyTextBlock" HorizontalAlignment="Left" Margin="12,178,0,-224" Grid.Row="4" TextWrapping="Wrap" Text="{Binding MyText, Mode=TwoWay}" VerticalAlignment="Top" Height="93" Width="191" FontSize="36"/>
4

2 に答える 2