9

コンストラクターで Page の Name プロパティを設定しようとしています。

public partial class PageListView : Page
{
    public PageListView(string title)
    {
        InitializeComponent();
        Name = title;
    }
}

ただし、次のエラー メッセージが表示されることがよくあります。

'x' is not a valid value for property 'Name'.

x例外の詳細にドリルダウンしても、有用な情報が得られないようです (たとえば、InnerException が null であるなど) 。

ここで何が起こっているか知っている人はいますか?

4

2 に答える 2

19

Name プロパティは、通常、C#/VB.NET 識別子 (つまりフィールド) の規則に従います。ドキュメントに基づく:

Name に使用される文字列値には、XAML 仕様で定義された基になる x:Name ディレクティブによって課せられるように、いくつかの制限があります。特に、名前は文字またはアンダースコア文字 (_) で始まり、文字、数字、またはアンダースコアのみを含む必要があります。

あなたが渡しているパラメータ(タイトルなど)に基づいて、それを破る可能性があるようです。ただし、確認するには、具体的な例をいくつか挙げる必要があります。

于 2011-03-24T00:19:46.150 に答える
1

もちろん、これを投稿した直後に、何が起こっているのかを理解しました。

FrameworkElement.Name はオブジェクト参照の作成に使用されるため、オブジェクト インスタンス変数名として有効な文字のみが文字列に含まれていることを確認する必要があります。

本当に参照用にプロパティを設定する場合を除き、代わりに Title または別のプレーン テキスト プロパティを使用x:Nameしてください。

于 2011-03-24T00:25:15.607 に答える