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行)で、「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

考えられる理由の1つは、依存関係プロパティの初期化に失敗することでもあります。

XAMLでインスタンス化しようとしていたクラスに次のコードがありました。

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

...この依存関係プロパティは、ListViewへの参照を保持することを目的としていました。しかし、VSのデフォルトの「propdp」コードスニペットは、この「新しいUIPropertyMetadata(0)」を生成しました。これは、参照変数の場合は少し間違っています。「newUIPropertyMetadata(null)」である必要があります。

これを変更すると、問題が修正されました。何らかの理由で、実行時にこれから目に見える例外を受け取りたくありません。

于 2014-02-21T08:08:25.000 に答える