Я новичок в WPF MVVM, и я работаю над почти полным приложением.Есть только одна проблема, и я не могу понять, что я делаю неправильно.Позвольте мне добавить, что у меня есть только фон Winforms, и мне никогда не нужно было привязывать данные, поэтому, если решение кажется очевидным, вот почему.
<!-- The list of download packages. -->
<ListBox x:Name="PackagesList" DockPanel.Dock="Left" Width="120" ItemsSource="{Binding ViewRaster.RasterPackages}">
<!-- Each individual package -->
<ListBox.ItemTemplate>
<DataTemplate>
<WrapPanel>
<Image Height="16" Width="16" Source="{Binding PackageImage}"/>
<TextBlock Text="{Binding PackageName}"/>
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Tag" Value="{Binding PackageDownloads}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
У меня есть списокпакеты внутри объекта ViewRaster, как вы можете сказать из ItemSource списка.С каждым пакетом источника элемента я создаю элемент списка, который содержит изображение и текстовое поле с именем пакета и изображением пакета.
Теперь, следующий, есть "ItemContainerStyle", который яПредполагалось, что он работал бы точно так же, а именно: я мог бы использовать свойства каждого отдельного пакета, как это было связано с ItemsSource.
Кажется, я не могу получить доступ к индивидуальному «Пакет», как и в ItemTemplate -> DataTemplate.Необходимо, чтобы у меня в ListBoxItem был установлен тег "Tag" или "DataContext", равный "PackageDownloads".
От дизайнера он говорит, что не может найти "PackageDownloads" в контексте данныхмое представление, но я не в DataContext моего представления, я в DataContext ItemsSource.
Почему это?Как я могу это исправить?