Xaml无法创建“X”的实例

问题描述:

我正尝试在Windows Phone 7中为我的应用创建一个设置页面。我创建了AppSettings类,并从我的MainPage.xaml中引用它。这是我的代码:Xaml无法创建“X”的实例

<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的行(本地:AppSettings的线),我得到一个错误消息,指出“不能创建的AppSettings的实例”。

+0

我有完全相同的问题。 – 2011-12-29 19:58:16

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

try 
{ 
    settings = IsolatedStorageSettings.ApplicationSettings; 
} 
catch (System.IO.IsolatedStorage.IsolatedStorageException e) 
{ 
    // handle exception 
} 
+1

微软需要更新他们的“如何”来反映这一点! http://msdn.microsoft.com/en-us/library/ff769510(v=vs.92) – jedmao 2012-06-10 03:49:46

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

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

+0

我检查了一下,我有一个无参数的构造函数。 – 2011-05-02 00:01:16

+1

我看到我的应用程序运行时没有问题,即使当我的应用程序停止时,在VS中的错误列表上看到此错误时也是如此。也许它正在运行时解决?我不确定.... – 2011-05-02 02:57:25

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

我曾在一类下面的代码,我试图在XAML实例:

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

...其中这种依赖性属性是打算抱着ListView的参考。但VS默认的“propdp”代码片段生成了这个“新的UIPropertyMetadata(0)”,这在参考变量的情况下有点错误。它应该是“新的UIPropertyMetadata(null)”。

更改这个固定的问题给我。出于某种原因,我在运行时没有收到任何可见的异常。