Добавить пользовательский шаблон в ListView - GridView WPF?
В настоящее время у меня есть этот код XAML:
<ListView x:Name="listFeedSearch" Margin="-548.856,95.333,0,7.667" HorizontalAlignment="Left" Width="542.5" RenderTransformOrigin="0.5,0.5" ItemsSource="{Binding SearchCollection}">
<ListView.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</ListView.RenderTransform>
<ListView.View>
<GridView>
<GridViewColumn Width="150" Header="Feed Name" x:Name="listFeedSearchName" DisplayMemberBinding="{Binding FeedName}" />
<GridViewColumn Width="280" Header="Feed Address" x:Name="listFeedSearchAddress" DisplayMemberBinding="{Binding FeedUrl}" />
<GridViewColumn Width="100" Header=" " x:Name="listFeedSearchSelect" />
</GridView>
</ListView.View>
</ListView>
Что я хочу сделать, это иметь listFeedSearchSelect
есть кнопка в ячейке для каждой записи.
То, что я пытался сделать, это, но не сработало, все, что он делал, это отображал пустую ячейку
<GridViewColumn Header=" " Width="100" x:Name="listFeedSearchSelect">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content="Select" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
Может кто-нибудь помочь мне здесь, спасибо.
2 ответа
Решение
Попробуйте настроить свой шаблон в качестве ресурса. Вот так:
<Window.Resources>
<DataTemplate x:Key="SelectButtonColumnDataTemplate">
<Button Content="Select" Command="{Binding SelectItemCommand}" />
</DataTemplate>
</Window.Resources>
<ListView x:Name="listFeedSearch" HorizontalAlignment="Left" Width="542.5" RenderTransformOrigin="0.5,0.5" ItemsSource="{Binding SearchCollection}">
<ListView.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</ListView.RenderTransform>
<ListView.View>
<GridView>
<GridViewColumn Width="150" Header="Feed Name" x:Name="listFeedSearchName" DisplayMemberBinding="{Binding FeedName}" />
<GridViewColumn Width="280" Header="Feed Address" x:Name="listFeedSearchAddress" DisplayMemberBinding="{Binding FeedUrl}" />
<GridViewColumn Width="100" Header=" " CellTemplate="{StaticResource SelectButtonColumnDataTemplate}" />
</GridView>
</ListView.View>
</ListView>
Если я просто скопировать и вставить это GridViewColumn
и ваша коллекция имеет элементы, которые действительно отображают кнопку, как и ожидалось. Проблема может быть в вашем контексте.