Я хочу повторно использовать свои 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 сделают лучший чистый способ?