2011-05-01 11 views
5

Estoy intentando crear una página de configuración para mi aplicación en Windows Phone 7. Creé la clase AppSettings y la estoy derivando de MainPage.xaml. Este es mi código:Xaml no puede crear una instancia de "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> 

Pero en la línea en la que me refiero AppSettings (locales: AppSettings línea), me sale un mensaje de error que indica que "no se puede crear una instancia de AppSettings".

+0

Tengo exactamente el mismo problema. –

Respuesta

4

Esto se debe a instanciar ApplicationsSettings arroja una excepción. Si agrega lo siguiente a su constructor, debería estar bien;

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

¡Microsoft necesita actualizar su "Cómo" para reflejar esto! http://msdn.microsoft.com/en-us/library/ff769510(v=vs.92) – jedmao

3

Para que los objetos sean referencia en xaml como este necesitan tener un constructor sin parámetros predeterminado. Verificaría que este es el caso.

Otros posibles problemas podrían ser una excepción en el constructor.

+0

Comprobé, tengo un constructor sin parámetros. –

+1

Lo que vi que mi aplicación se ejecuta sin problemas, incluso cuando veo este error en mi lista de errores en VS cuando descansa mi aplicación. Tal vez se está resolviendo en tiempo de ejecución? No estoy seguro ... –

0

Una posible razón podría estar fallando en la inicialización de la propiedad de dependencia.

que tenían un código siguiente en la clase que yo estaba tratando de crear una instancia en XAML:

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

... donde esta propiedad de dependencia fue pensado para contener una referencia a ListView. Pero el fragmento de código "propdp" predeterminado de VS generó este "nuevo UIPropertyMetadata (0)", que es un poco erróneo en el caso de la variable de referencia. Debería ser "new UIPropertyMetadata (null)".

Al cambiar esto, se solucionó el problema. Por alguna razón, no recibiré ninguna excepción visible de esto en tiempo de ejecución.

Cuestiones relacionadas