Xaml не может создать экземпляр «X» - PullRequest
5 голосов
/ 02 мая 2011

Я пытаюсь создать страницу настроек для своего приложения в 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), я получаю сообщение об ошибке, в котором говорится, что «не удается создать экземпляр AppSettings».

Ответы [ 3 ]

4 голосов
/ 21 февраля 2012

Это потому, что создание экземпляров ApplicationsSettings вызывает исключение.Если вы добавите следующее в свой конструктор, у вас все будет в порядке:

try
{
    settings = IsolatedStorageSettings.ApplicationSettings;
}
catch (System.IO.IsolatedStorage.IsolatedStorageException e)
{
    // handle exception
}
3 голосов
/ 02 мая 2011

Чтобы объекты могли ссылаться в xaml, они должны иметь конструктор по умолчанию без параметров.Я бы дважды проверил, что это так.

Другими потенциальными проблемами может быть исключение, брошенное в конструктор.

0 голосов
/ 21 февраля 2014

Одной из возможных причин также может быть сбой при инициализации свойства зависимостей.

У меня был следующий код в классе, который я пытался создать в XAML:

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

... где это свойство зависимости предназначено для хранения ссылки на ListView. Но фрагмент кода по умолчанию «propdp» VS сгенерировал этот «новый UIPropertyMetadata (0)», что немного неправильно в случае ссылочной переменной. Это должно быть "новое UIPropertyMetadata (null)".

Изменение этого исправило проблему для меня. По какой-то причине я не получил никаких видимых исключений из этого во время выполнения.

...