0

私のWindowsストアアプリケーションでは、ユーザーコントロールのプロパティを論理クラスの別のプロパティにバインドしたい

ユーザー コントロール「Card_UC.xaml.cs」には、次のプロパティが含まれています。

public string Card_ID
{
    get { return (string)GetValue(Card_ID_Property); }
    set { SetValue(Card_ID_Property, value); }
}

public DependencyProperty Card_ID_Property = 
    DependencyProperty.Register(
        "Card_ID", 
        typeof(string), 
        typeof(Card_UC), 
        new PropertyMetadata(null));

そして私の論理クラス「Card_Data.cs」では:

public string Card_ID { get; set; }

メインページでは、このようなデータバインディングを使用してこのカードのグリッドを作成したい

<GridView
    x:Name="UI_GView_Cards"
    ItemsSource="{Binding}">
    <GridView.ItemTemplate>
        <DataTemplate>
            <local:CardControl
                x:Name="UC_Card"
                CardPressed="CardControl_CardPressed"
                ID="{Binding Path=Card_ID, ElementName=Card_UC, Mode=TwoWay}"/>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

「Card_UC.xaml」の他のすべてのプロパティ バインディングは、Card_ID を除いて機能します。

問題は、ID プロパティにアクセスするたびにアプリケーションがクラッシュすることです。

return (string)GetValue(Card_ID_Property);

エラー: 「オブジェクト参照がオブジェクトのインスタンスに設定されていません。」


修正された問題:

この行の問題:

ID="{Binding Path=Card_ID, ElementName=Card_UC, Mode=TwoWay}"

に変更:

ID="{Binding Card_ID}"

編集:

  • 「コピー&ペースト」の間違いを修正。
  • 質問を再フォーマットします。
4

1 に答える 1