Я работаю над приложением в стиле C ++ Metro и имею проблему с привязкой внутри ItemTemplate объекта ListView (или его элементов соответственно).Если я делаю это прямо в моем Page.xaml, это работает.(Упрощенный) код будет:
<ListView x:Name="m_listParts" ItemsSource="{Binding PartsList}>
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Width="60" Height="60">
<Grid>
<TextBlock Text="{Binding Part}"/>
</Grid>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
Однако я хотел бы иметь определение ItemTemplate в моем resourceDictionary.Но я не могу понять, как заставить работать привязку.Кажется, он больше не находит связанные свойства.
Вот моя (упрощенная) попытка (поскольку работает ItemsPanel, я полагаю, что я правильно загрузил словарь):
<Style x:Key="PartsListListView" TargetType="ListView">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal" Width="60" Height="60">
<Grid>
<TextBlock Text="{Binding Part}"/>
</Grid>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
PartsList - это наблюдаемый вектор, содержащий объекты PartViewItem, который состоит из свойства Part.