Reputation: 934
I have a ListView
with 3 columns.
In the first and second, I add a simply string by Binding. It works.
Now, I want to add in my ListViewColumn
a border
with canvas
.
XAML :
<ListView x:Name="EntreesListView" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4">
<ListView.View>
<GridView>
<GridViewColumn Header="Entrées" Width="Auto" DisplayMemberBinding="{Binding Nom}"/>
<GridViewColumn Header="Prix" Width="Auto" DisplayMemberBinding="{Binding Prix}"/>
<GridViewColumn Width="Auto">
<Border x:Name="MoinsBorder" Background="White" BorderBrush="Black" BorderThickness="1" Width="18" Height="18" CornerRadius="10">
<Canvas x:Name="MoinsCanvas">
<Path Width="10" Height="3" Canvas.Left="3" Canvas.Top="6" Stretch="Fill" Fill="Black" Data="F1 M 19,38L 57,38L 57,44L 19,44L 19,38 Z"/>
</Canvas>
</Border>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Unfortunately, this is not working.
My Canvas
is display correctly, but in the header instead of the content like my string.
How can I add my border
/canvas
in each line correctly ?
Thanks !
Upvotes: 0
Views: 324
Reputation: 9944
add the GridViewColumn
CellTemplate
as well
<ListView x:Name="EntreesListView" ItemsSource="{Binding DataGridItems}">
<ListView.View>
<GridView>
<GridViewColumn Header="Entrées" Width="Auto" DisplayMemberBinding="{Binding Nom}"/>
<GridViewColumn Header="Prix" Width="Auto" DisplayMemberBinding="{Binding Prix}"/>
<GridViewColumn Width="Auto">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Border x:Name="MoinsBorder" Background="White" BorderBrush="Black" BorderThickness="1" Width="18" Height="18" CornerRadius="10">
<Canvas x:Name="MoinsCanvas">
<Path Width="10" Height="3" Canvas.Left="3" Canvas.Top="6" Stretch="Fill" Fill="Black" Data="F1 M 19,38L 57,38L 57,44L 19,44L 19,38 Z"/>
</Canvas>
</Border>
</DataTemplate>
</GridViewColumn.CellTemplate>
<Border x:Name="MoinsBorder" Background="White" BorderBrush="Black" BorderThickness="1" Width="18" Height="18" CornerRadius="10">
<Canvas x:Name="MoinsCanvas">
<Path Width="10" Height="3" Canvas.Left="3" Canvas.Top="6" Stretch="Fill" Fill="Black" Data="F1 M 19,38L 57,38L 57,44L 19,44L 19,38 Z"/>
</Canvas>
</Border>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Upvotes: 0
Reputation: 33364
You need to define CellTemplate
<ListView x:Name="EntreesListView" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4">
<ListView.View>
<GridView>
<GridViewColumn Header="Entrées" Width="Auto" DisplayMemberBinding="{Binding Nom}"/>
<GridViewColumn Header="Prix" Width="Auto" DisplayMemberBinding="{Binding Prix}"/>
<GridViewColumn Width="Auto">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Border x:Name="MoinsBorder" Background="White" BorderBrush="Black" BorderThickness="1" Width="18" Height="18" CornerRadius="10">
<Canvas x:Name="MoinsCanvas">
<Path Width="10" Height="3" Canvas.Left="3" Canvas.Top="6" Stretch="Fill" Fill="Black" Data="F1 M 19,38L 57,38L 57,44L 19,44L 19,38 Z"/>
</Canvas>
</Border>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Upvotes: 1