У меня возникла проблема с привязкой данных к исходному свойству Image
.
У меня есть ListView
Шаблон
<Style x:Key="ListViewStyle" TargetType="{x:Type ListView}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate x:Key="ListViewItemTemplate">
<StackPanel Width="60" Margin="5,5,10,5">
<Image Height="40" Width="40" Source="{Binding XPath=@Image}"
HorizontalAlignment="Center"/>
<TextBlock Text="{Binding XPath=@Name}" TextAlignment="Center"
TextWrapping="Wrap" FontWeight="bold"
HorizontalAlignment="Center" Margin="0,0,0,1" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Это Style
определено в файле словаря ресурсов, который добавлен в app.xaml. (Так доступно везде).
Теперь у меня есть окно, в котором я использовал этот стиль для ListVew
.
В WindowResources я создал провайдера xmldatasource:
<XmlDataProvider x:Key="MyData" XPath="/Reports">
<x:XData>
<Reports xmlns="">
<Item Name = "Item1" Image="Resources\MenuIcons\Pic1.png"/>
<Item Name = "Item2" Image="Resources\MenuIcons\Pic2.png"/>
<Item Name = "Item3" Image="Resources\MenuIcons\Pic3.png"/>
</Reports>
</x:XData>
</XmlDataProvider>
и я назначил этот источник данных как ItemsSource
для Listview
:
<ListView Name="MyListView" Style="{DynamicResource ListViewStyle}"
ItemTemplate="{StaticResource ListViewItemTemplate}"
ItemsSource="{Binding Source={StaticResource MyData},XPath=Item}"/>
Моя проблема заключается в том, что при запуске приложения отображается текст ListViewItem
, но отсутствует Image
..
Но когда я определил это Style
внутри Window.Resource и использовал Style в качестве StaticResource вместо Dynamic Resource, все отлично работает.
Может кто-нибудь сказать мне причину неиспользования Image
? Я хочу использовать этот стиль глобально (поэтому мне нужно определить его в ResourceDictionary). Кто-нибудь может мне помочь?