2011-07-07 12 views
0

他のページからFileNameとFileText1を取得するにはどうすればよいですか?テキストの表示ページのコードは、現在のコンテキストにFileNameとFileText1が存在しないことを示しています。別のページからの保存ファイルの読み込みを許可する取得と設定の方法

これが書かれたテキストを保存するには、作成ページのためのコードです:

namespace WindowsPhoneApplication1 
{ 
    public partial class CreateQuizPage : PhoneApplicationPage 
    { 
     public CreateQuizPage() 
     { 
      InitializeComponent(); 
     } 

     private const string FileName = "Name"; 
     private const string FolderName = "QuestionFolder"; 
     private string FilePath = System.IO.Path.Combine(FolderName, FileName); 



     private void Button_Click(object sender, RoutedEventArgs e) 
     { 

      this.OnSaveFile(FilePath); 


      MessageBox.Show("File saved successfully"); 

      NavigationService.Navigate(new Uri("/CompleteQuizPage.xaml", UriKind.Relative)); 

     } 



     private void OnSaveFile(string filePath) 
     { 
      StreamResourceInfo streamResourceInfo = Application.GetResourceStream(new Uri(filePath, UriKind.Relative)); 

      using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       string directoryName = System.IO.Path.GetDirectoryName(filePath); 
       if (!string.IsNullOrEmpty(directoryName) && !myIsolatedStorage.DirectoryExists(directoryName)) 
       { 
        myIsolatedStorage.CreateDirectory(directoryName); 
       } 

       using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(filePath, FileMode.Create, FileAccess.Write)) 
       { 
        using (StreamWriter writer = new StreamWriter(fileStream)) 
        { 

         string someTextData = textFileName.Text + text1.Text; 
         writer.WriteLine(someTextData); 
        } 
       } 
      } 
     } 

     private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
     { 

     } 


    } 
} 

これは、テキストを表示するには、閲覧ページのためのコードです:これら二つの部材がマークされている

namespace WindowsPhoneApplication1 
    { 
     public partial class AnswerQuestionPage : PhoneApplicationPage 
     { 

      public AnswerQuestionPage() 
      { 
       InitializeComponent(); 
       } 





      private void OnReadSelected(string filePath) 
      { 
       using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
       { 
        if (myIsolatedStorage.FileExists(filePath)) 
        { 
         using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(filePath, FileMode.Open, FileAccess.Read)) 
         { 
          using (StreamReader reader = new StreamReader(fileStream)) 
          { 
           this.titleText.Text = reader.ReadLine(); 
          } 
         } 
        } 
        else 
        { 
         //MessageBox.Show("File not found!"); 

        } 
       } 
      } 

      private void Button_Click(object sender, RoutedEventArgs e) 
      { 



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

      private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
      { 

       this.OnReadSelected(FileName); 
       this.OnReadSelected(FileText1); 
      } 




     } 
    } 

答えて

1

プライベートなのでどこからでもアクセスすることはできません(そのクラス以外)。

これを行うより良い方法は、定数の静的クラスを作成して、すべてのページから使用することです。

public static class Constants 
{ 
    public const string FileName = "Name"; 
    public const string FolderName = "QuestionFolder"; 
} 

、その後、あなたのページのいずれかから、このようにそれを呼び出す:

  this.OnReadSelected(Constants.FileName); 
      this.OnReadSelected(Constants.FileText1); 
+0

私はと「WindowsPhoneApp1「その保護レベルにWindowsPhoneApp1.Model.Constants.FilesNameがアクセス不能である」のようなエラーを取得しています.Model.ConstantsにはFileText1の定義が含まれていません。 ' – lala

+0

それは私が得ているエラーです、私はそれを解決する方法がわかりません。 – lala

+0

申し訳ありませんが、変更してください(コピー貼り付けの問題でした)。公開する必要があります。 –