У меня есть три следующих шаблона данных:
<HierarchicalDataTemplate DataType="{x:Type models:DirOrFileItem}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Image Source="../Images/Folder.png" Stretch="Uniform" Height="20"></Image>
<TextBlock Text="{Binding Name}" ToolTip="{Binding RelativePath}"></TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate x:Key="SelectColTemplate">
<CheckBox IsChecked="{Binding Path=IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}" />
</DataTemplate>
<DataTemplate x:Key="IconTemplate">
<Image Source="{Binding ImageData}" Stretch="Uniform" Height="20" />
</DataTemplate>
Я установил свойство ImageData
для модели представления строки следующим образом:
item.ImageData = ImageHelper.LoadImage(AppConstants.FileRsourcePath);
где LoadImage
:
public static BitmapImage LoadImage(string filename)
{
return new BitmapImage(new Uri("pack://application:,,,/" + filename));
}
Я знаю, что оно загружает изображение правильно, потому что когда я проверяю свойство ImageData
после его установки, оно имеет свойства, которые являются правильными для загруженного изображения.
HierarchicalDataTemplate
для TreeView
, а изображение folder.png
выглядит так, как и где ожидается.Затем у меня есть следующие столбцы ListView
:
<GridViewColumn CellTemplate="{StaticResource SelectColTemplate}" Width="30" />
<GridViewColumn CellTemplate="{StaticResource IconTemplate}" Width="30" />
<GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Name" Width="360" />
Я отображаю список файлов и папок и хотел бы выделить изображение, которое есть какие.
CheckBox
появляется там, где и должно, в первом столбце, а третий столбец в разметке отображается как второй столбец на экране, как будто столбец с шаблоном изображения IconTemplate
не существует.
Оба изображениягде они должны быть, в той же папке Images
, так почему мой «столбец изображения» не отображается как второй столбец, как я ожидаю?
БОНУСНЫЙ ВОПРОС: Если как@Clemens предлагает в своем комментарии ниже, я установил Действие сборки изображений на Resource
и загрузил их с помощью URI Resource File Pack, как мне это сделать в XAML?