USERCONTROL AS DataTemplate Внутри ListBox

Я хочу повторно использовать свои usercontrols на других usercontrols, как страница или окно в качестве dataTemplates, в этом примере внутри списка. Все это МВВМ.

У меня Usercontrol называется «CardControl» для отображения простого объекта «карта». Карта имеет два свойства, «ID» и «CardImage». DataContext Controls установлен через XAML. Если я открою этот USERCONTROL в VS или смесь, он показывает, что она показывает, что пустышка, которую я определил в соответствующем просмотру моделя.

Теперь у меня есть еще один USERCONTROL под названием «CardSetControl», который должен отображать коллекцию карт. Таким образом, ViewModel имеет одно свойство Type HeadableCollection «Карты».

Вот код:

<ListBox x:Name="MyList" ItemsSource="{Binding CardSet.Cards}">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel>

        <!-- WORKING, but not what i want -->
        <TextBlock Text="{Binding ID}" /> // would display ID of Card
        <Image Source="{Binding Image}" /> // would display Image of Card

        <!-- NOT WORKING, but this is how i want it to work -->
        <UserControls:CardControl DataContext="{Binding "Current listbox item as DataContext of CardControl???"}" />

      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

После прочитывания тонн статей о MVVM и DataContext / Binding я до сих пор не получил его на работу. Как это все иерархические возможности Usercontrols / DataContexts сделают лучший чистый способ?

19
задан pDEV 12 September 2011 в 14:12
поделиться