Проблема с простой привязкой - PullRequest
       15

Проблема с простой привязкой

0 голосов
/ 30 сентября 2010

Я пытаюсь привязать коллекцию к ListBox, используя только XAML.Это вроде работает, но отображает только MyProject.mainItem (который является типом объекта) вместо фактических значений.

В классе, который назначен как DataContext, у меня есть это:

ItemCatalog.Add(new mainItem { Ref = "555555", ItemName = "First Item" });

В XAML на странице, на которой есть ListBox, у меня есть это:

<ListBox ItemsSource="{Binding ItemCatalog}">
       <DataTemplate>
             <StackPanel Margin="0,0,0,17" Width="432">
                  <TextBlock Text="{Binding Ref}" TextWrapping="Wrap"  Foreground="Black" />
                  <TextBlock Text="{Binding ItemName}" TextWrapping="Wrap" Margin="12,-6,12,0" Foreground="Black" />
             </StackPanel>
       </DataTemplate>
</ListBox>

Он перебирает всю коллекцию ItemCatalog, но вместо отображения значений, таких как First Item,это просто показывает тип объекта.спасибо

Ответы [ 2 ]

3 голосов
/ 30 сентября 2010

Если основной элемент не имеет визуального представления IE в шаблоне данных.Затем он вызовет ToString() этого объекта для его отображения.Вот почему вы видите тип объекта.

Почему ваш шаблон данных не работает, потому что вы пытались вставить его, как если бы вы ListBoxItem.

Что вывы хотите переопределить ItemTemplate

<ListBox ItemsSource="{Binding ItemCatalog}">
    <ListBox.ItemTemplate>
         <DataTemplate/>
    </ListBox.ItemTemplate>
</ListBox>

Также вы захотите установить свойство DataType в DataTemplate для соответствующего типа.

Надеюсь, это поможет.

0 голосов
/ 30 сентября 2010

Код говорит, что DataTemplate является одним из элементов ListBox.

Попробуйте добавить тег <ListBox.ItemsTemplate> вокруг <DataTemplate>.

...