Связывание пользовательского класса - PullRequest
0 голосов
/ 20 февраля 2012

Простой вопрос о 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.объекта Достижения, поэтому выполнение не выполняется.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2012

Если вы хотите связать напрямую с классом Achievement, вам нужно переопределить метод ToString () , либо создать преобразователь значений или связать со свойствами вашего класса.

0 голосов
/ 20 февраля 2012

Убедитесь, что ваш элемент управления, содержащий AchievementControl, имеет набор DataContext. Затем убедитесь, что DataContext имеет свойство (пример = MyAchievement)

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