У меня есть WPF ListView/GridView spec'd в XAML. Первый столбец использует CellTemplate для указания значков, а остальные используют DisplayMemberBinding для заполнения. Столбец значков 20 ширины, значки 16, но они усекаются полями/дополнением/чем-то. Я не могу решить, где он установлен.
Здесь основные (я удалил несколько столбцов, потому что они одинаковые):
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="FontWeight" Value="Normal" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.Resources>
<DataTemplate x:Key="image">
<Image Width="16" Height="16" Margin="0,0,0,0"
HorizontalAlignment="Center"
Source="{Binding Path=ObjectType,
Converter={StaticResource imageConverter} }" />
</DataTemplate>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Width="20"
CellTemplate="{StaticResource image}"/>
<GridViewColumn Width="120" Header="Name"
DisplayMemberBinding="{Binding Path=Name}"/>
</GridView>
</ListView.View>
ImageConverter просто превращает ObjectType в изображение, чтобы каждый тип элемента получал свой собственный значок.