Silverlight 绑定自定义类

Silverlight 绑定自定义类,silverlight,binding,datatemplate,Silverlight,Binding,Datatemplate,关于XAML的简单问题。 有一个类成就和一个控件成就控件来显示它。 我试图创建一个列表框,其中包含列表作为ItemsSource和DataTemplate <ListBox ItemsSource={Binding Achievements}> <ListBox.ItemTemplate> <DataTemplate> <controls:AchievementControl Achievement="{B

关于XAML的简单问题。 有一个类成就和一个控件成就控件来显示它。 我试图创建一个列表框,其中包含列表作为ItemsSource和DataTemplate

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

但正如我在debugger中看到的,它将System.Windows.Data.Binding对象作为值发送给Acquisition属性的setter,而不是Acquisition对象,因此执行失败。

请确保包含AcquisitionControl的控件具有DataContext集。然后确保DataContext有一个属性Example=myAchasition

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

如果您想直接绑定到Acquisition类,那么需要重写
ToString方法或创建值转换器,或与类的属性绑定

即使在我使用{Binding Path=.}时,您也必须为Binding分配Path属性。它的工作方式相同。从成就类到的值转换器是什么?请尝试在此处粘贴您的xaml。我想查看您的DataContextOK,我直接在问题中添加了一些xaml。我有一个列表框,我想绑定到List.OK的项。首先,确保您的列表是一个可观察的集合,并在需要时实现INotify。然后,无论您的集合被称为什么,都将该名称放入Achavity={Binding CollectionName}