2012-02-20 14 views
0

XAMLについての簡単な質問。 クラスAchievementとコントロールAchievementControlが表示されます。私は カスタムクラスのバインド

<ListBox ItemsSource={Binding Achievements}> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <controls:AchievementControl Achievement="{Binding}" /> 
     </DataTeplate> 
    </ListBix.ItemTemplate> 
</ListBox> 

のItemsSourceとするDataTemplateとしてではなく、それは達成プロパティのセッターに値としてSystem.Windows.Data.Bindingオブジェクトを送る代わりに、私は、デバッガで見ることができるようにリストが含まれているリストボックスを作成しようとしました Achievementオブジェクトは、実行に失敗します。

+0

バインディングのPathプロパティを割り当てる必要があります – Maheep

+0

{Binding Path =。}を使用している場合でも、同じ方法で動作します。 –

答えて

0

AchievementControlを含むコントロールにDataContextが設定されていることを確認してください。その後のDataContextは、プロパティ(例= MyAchievement)を持っていることを確認してください

<DataTemplate> 
    <controls:AchievementControl Achievement="{Binding MyAchievement}" /> 
</DataTeplate> 
+0

私はリストボックスを持っています、リストのアイテムにバインドしたいと思います。 –

+0

OK。まず、あなたのListがObservableCollectionであることを確認してください(必要ならば、Inotifyを実装します)。それから、あなたのコレクションが呼び出されても、その名前をAchievement = "{Binding CollectionName}"に入れてください。 – MyKuLLSKI

0

あなたは、あなたが のToString()メソッドをオーバーライドしたり値コンバータを作成する必要が達成クラスに直接バインドしたい場合またはあなたのクラスののプロパティとバインドします。

+0

Achievementクラスの価値コンバーターはどのようになっていますか? –

+0

ここにxamlを貼り付けてみてください。私はあなたのdatacontextを見たい – gaurawerma

+0

さて、私は質問に直接いくつかのxamlを追加しました。 –

関連する問題