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 ファイルに保存するために使用するものです。PhoneMainView
Phones
クラスが定義されている場所とコードGetSavedData
がある場所phones.xml
からの XML ファイルです。UpdateXML.cs