Windows Phone 应用程序数据

Posted

技术标签:

【中文标题】Windows Phone 应用程序数据【英文标题】:Windows Phone App data 【发布时间】:2015-08-28 00:01:41 【问题描述】:

我想做的是在我的应用中为我的用户维护个人资料图片。 用户可以从本地图片库中获取图片。因此,每当应用程序加载时,它应该检查本地应用程序数据是否存在图片,如果存在,它应该将图像设置为它。我试过这样做,但它不起作用。

// Saving
BitmapImage bitmapImage = image.Source as BitmapImage;
Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
string path = bitmapImage.UriSource.ToString();
localSettings.Values["ProfilePic"] = path;

// In constructor retrieving like this.
string sourceVal = localSettings.Values["ProfilePic"] as string;

if (sourceVal != null) 
    Image img = new Image();
    BitmapImage bi = new BitmapImage();
    Uri uri = new Uri(sourceVal);
    bi.UriSource = uri;
    img.Source = bi;

它正在抛出异常,任何人都可以使用 C# 给他们适当的代码吗?

System.NullReferenceException 发生。

【问题讨论】:

错误发生在哪一行? What is a NullReferenceException and how do I fix it? 的可能重复项 【参考方案1】:

在这里和那里修改了你的代码,它对我来说工作正常。看看

xaml

    <Image Name="img" Height="100" Width="100"/>

后面的代码:

// define on top
Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;


//in constructor or in OnNavigatedTo()
 string sourceVal = localSettings.Values["ProfilePic"] as string;
 if (sourceVal != null)
        
            //  Image img1 = new Image();
            BitmapImage bi = new BitmapImage();
            Uri uri = new Uri(sourceVal, UriKind.Relative);
            bi.UriSource = uri;
            img.Source = bi;
        
        else
        
            // hardcoding image source for testing. You can set image here from gallery
            img.Source = new BitmapImage(new Uri("/Assets/AlignmentGrid.png", UriKind.Relative));
        

// Save image (in OnNavigatedFrom())
BitmapImage bitmapImage = img.Source as BitmapImage;
string path = bitmapImage.UriSource.ToString();
localSettings.Values["ProfilePic"] = path;

试试这个,如果有任何问题,请告诉我。

【讨论】:

以上是关于Windows Phone 应用程序数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows Phone 应用程序中使用应用程序数据和本地设置

Windows Forms 应用程序用于访问 Windows Phone 中的 SQL Server CE 数据库的连接字符串

Windows Phone 8 保存数据

如何使用`this解析C#(Windows Phone)中的JSONData。

Windows Phone 7 数据库

windows phone 8 上的本地数据库