5

我正在尝试在 Windows Phone 7 中为我的应用程序创建一个设置页面。我创建了 AppSettings 类并从我的 MainPage.xaml 中引用它。这是我的代码:

<phone:PhoneApplicationPage 
    x:Class="Shapes4Kids.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:ShapesSettings;assembly=Shapes4Kids" 
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="696"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">
    <phone:PhoneApplicationPage.Resources>
        <local:AppSettings x:Key="appSettings"></local:AppSettings>
    </phone:PhoneApplicationPage.Resources>

但是在我引用 AppSettings (local:AppSettings line) 的那一行,我收到一条错误消息,指出“无法创建 AppSettings 的实例”。

4

3 回答 3

4

这是因为实例化 ApplicationsSettings 会引发异常。如果将以下内容添加到构造函数中,则应该没问题;

try
{
    settings = IsolatedStorageSettings.ApplicationSettings;
}
catch (System.IO.IsolatedStorage.IsolatedStorageException e)
{
    // handle exception
}
于 2012-02-21T08:04:40.223 回答
3

对于像这样在 xaml 中引用的对象,它们需要有一个默认的无参数构造函数。我会仔细检查是否是这种情况。

其他潜在问题可能是构造函数中引发的异常。

于 2011-05-01T22:31:36.587 回答
0

一个可能的原因也可能是依赖属性初始化失败。

我试图在 XAML 中实例化的类中有以下代码:

public static readonly DependencyProperty ListViewObjectProperty = DependencyProperty.Register(
                                                                                                "ListViewObject",
                                                                                                typeof(ListView),
                                                                                                typeof(WidthConverter),
                                                                                                new UIPropertyMetadata(0));

...此依赖属性用于保存对 ListView 的引用。但是 VS 默认的“propdp”代码片段生成了这个“new UIPropertyMetadata(0)”,这在引用变量的情况下有点错误。它应该是“新的 UIPropertyMetadata(null)”。

改变这个为我解决了这个问题。出于某种原因,我不想在运行时收到任何可见的异常。

于 2014-02-21T08:08:25.000 回答