关于XAML的简单问题。 有一个类Achievement和一个控件AchievementControl来显示它。 我试图创建一个ListBox,其中包含List作为ItemsSource和DataTemplate
<ListBox ItemsSource={Binding Achievements}>
<ListBox.ItemTemplate>
<DataTemplate>
<controls:AchievementControl Achievement="{Binding}" />
</DataTeplate>
</ListBix.ItemTemplate>
</ListBox>
但正如我在调试器中看到的那样,它将一个System.Windows.Data.Binding对象作为一个值发送给Achievement属性的setter而不是Achievement对象,因此执行失败。
答案 0 :(得分:0)
确保包含AchievementControl的控件具有DataContext集。然后确保DataContext具有Property(Example = MyAchievement)
<DataTemplate>
<controls:AchievementControl Achievement="{Binding MyAchievement}" />
</DataTeplate>
答案 1 :(得分:0)
如果要直接与Achievement类绑定,则需要覆盖 ToString()方法或创建值转换器或与您的类的属性绑定。