VS2012 で Windows 8 アプリを作成し、2 つの文字列を表示するユーザー コントロールにオブジェクト (カード) のリストをバインドしようとしています。1ページのユーザーコントロールのコードは次のとおりです。
<FlipView x:Name="cardView"/>
<FlipView.ItemTemplate>
<DataTemplate>
<local:TileControl x:Name="cardTile" Width="600" Height="400" QuestionText="{Binding Value.question}" AnswerText="{Binding Value.answer}"/>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
これは、C# コード ビハインドで設定されます。
cardView.ItemsSource = Storage.content.Decks[currentDeck].Cards;
ユーザー コントロール 'TileControl' コントロールには、次の変数が含まれています。
public string questionTextStr { get; set; }
public string answerTextStr { get; set; }
public string QuestionText
{
get
{
return questionTextStr;
}
set
{
questionTextStr = value;
questionText.Text = value; //set the textbox content
}
}
public string AnswerText
{
get
{
return answerTextStr;
}
set
{
answerTextStr = value;
answerText.Text = value; //set the textbox content
}
}
エラー リストに「プロパティ 'Flashdeck.TileControl.AnswerText' への割り当てに失敗しました」というエラーがあります。また、QuestionText にも適用されます。アプリはコンパイルおよび実行されますが、ユーザー コントロールを含むページを開くとクラッシュします。エラーとクラッシュを引き起こすために何が間違っていますか? ありがとう。
編集: デッキとカード クラスの詳細。デッキ:
public class Deck
{
public List<Card> Cards { get; set; }
public bool flagged { get; set; }
public Deck()
{
}
public Deck(List<Card> iCards)
{
Cards = iCards;
flagged = false;
}
public Deck(List<Card> iCards, bool iFlag)
{
Cards = iCards;
flagged = iFlag;
}
}
カード:
public class Card
{
public string question { get; set; }
public string answer { get; set; }
public bool flagged { get; set; }
public Card()
{
}
public Card(string iQ, string iA)
{
question = iQ;
answer = iA;
flagged = false;
}
}