0

TelerikRadJumpListを、IsolatedStorage に保存されている XML ファイルにバインドしようとしています。私のコードの一部を以下に示しますが、機能していないようです。私は何を間違っていますか?

public IEnumerable<Phones> GetSavedData()
{
IEnumerable<Phones> phoneList = new List<Phones>();

try
{
    using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
    {
        string offlineData = Path.Combine("WPTracker", "Offline");
        string offlineDataFile = Path.Combine(offlineData, "phones.xml");
        IsolatedStorageFileStream isoFileStream = myIsolatedStorage.OpenFile(offlineDataFile, FileMode.Open);

        if (myIsolatedStorage.FileExists(offlineDataFile))
        {
            using (XmlReader xmlReader = XmlReader.Create(isoFileStream))
            {
                XmlSerializer deserializer = new XmlSerializer(typeof(List<Phones>));
                List<Phones> phones = deserializer.Deserialize(xmlReader) as List<Phones>;

                phones.Sort(
                    new Comparison<Phones>((Phones p1, Phones p2) =>
                    {
                        return p1.FullName.CompareTo(p2.FullName);
                    }));

                this.radJumpList1.ItemsSource = phones;

                return phones;
            }
        }
        else
        {
            var update = new UpdateDatabase();
            update.UpdateData();

            GetSavedData();
        }
    }
}
catch (IsolatedStorageException)
{
    MessageBox.Show("There was an error retireving the data from Isolated Storage.", "The subscriber you are trying to reach can not be located.", MessageBoxButton.OK);
}

return phoneList;           
}

このエラーが発生するため、IsolatedStorage からの XML ファイルの読み取りと関係があると思います。

[ExceptionMessage]:[There is an error in XML document (1, 2).] at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, Object events) at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader) at WPTracker.ViewModels.Phones.PhoneMainView.GetSavedData() at WPTracker.ViewModels.Phones.PhoneMainView.OnNavigatedTo(NavigationEventArgs e) at Microsoft.Phone.Controls.PhoneApplicationPage.InternalOnNavigatedTo(NavigationEventArgs e) at Microsoft.Phone.Controls.PhoneApplicationPage.Microsoft.Phone.Controls.IPhoneApplicationPage.InternalOnNavigatedToX(NavigationEventArgs e) at System.Windows.Navigation.NavigationService.RaiseNavigated(Object content, Uri uri, NavigationMode mode, Boolean isNavigationInitiator, IPhoneApplicationPage existingContentPage, IPhoneApplicationPage newContentPage) at System.Windows.Navigation.NavigationService.CompleteNavigation(DependencyObject content, NavigationMode mode) at System.Windows.Navigation.NavigationService.ContentLoader_BeginLoad_Callback(IAsyncResult result) at System.Windows.Navigation.PageResourceContentLoader.BeginLoad_OnUIThread(AsyncCallback userCallback, PageResourceContentLoaderAsyncResult result) at System.Windows.Navigation.PageResourceContentLoader.<>c__DisplayClass4.<BeginLoad>b__0(Object args)]

必要に応じて、XML ファイルのコピーを添付できます。これは基本的に、Azure Mobile Services のテーブルです。

アップデート

ここに私のコードの一部へのリンクがあります(zipファイル)

  • UpdateXML.csこれは、Azure からデータをダウンロードして XML ファイルに保存するために使用するものです。
  • PhoneMainViewPhonesクラスが定義されている場所とコードGetSavedDataがある場所
  • phones.xmlからの XML ファイルです。UpdateXML.cs

SkyDrive ZIP ファイル

4

0 に答える 0