wpf listview datatemplate gridviewcolumn

listview wpf binding



WPF ListView con GridViewColumn y DataTemplate (2)

Debe definir la plantilla de datos como CellTemplate para su columna:

<ListView x:Name="lbDatabases" Height="138" Width="498" Canvas.Left="44" Canvas.Top="146" > <ListView.View > <GridView > <GridViewColumn Header="Databases" Width="498"> <GridViewColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding IsActive}" Checked="AnyChange" Unchecked="AnyChange" Style="{x:Null}" Content="{Binding DbName}" Width="{Binding CheckWidth}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView>

Tengo un control CheckedListBox que se crea agregando un DataTemplate con un CheckBox a un ListView . El problema es que también necesito columnas.

El siguiente código no muestra las casillas de verificación:

<ListView x:Name="lbDatabases" Height="138" Width="498" Canvas.Left="44" Canvas.Top="146"> <ListView.View> <GridView> <GridViewColumn DisplayMemberBinding="{Binding DbName}" Header="Databases" Width="498"/> </GridView> </ListView.View> <ListView.ItemTemplate> <DataTemplate> <CheckBox IsChecked="{Binding IsActive}" Checked="AnyChange" Unchecked="AnyChange" Style="{x:Null}" Content="{Binding DbName}" Width="{Binding CheckWidth}" /> </DataTemplate> </ListView.ItemTemplate> </ListView>

Sin embargo, si hago un comentario sobre este código, todo funciona bien pero no hay columnas:

<ListView.View> <GridView > <GridViewColumn DisplayMemberBinding="{Binding DbName}" Header="Databases" Width="498"/> </GridView> </ListView.View>

¿Hay alguna forma de tenerlo todo?


bien después de luchar toda la mañana, lo descubrí. La clave aquí es usar CellTemplate:

<ListView x:Name="lbDatabases" Height="138" Width="498" Canvas.Left="44" Canvas.Top="146" Style="{StaticResource ListViewStyle}"> <ListView.View > <GridView> <GridViewColumn Header="Databases" Width="498"> <GridViewColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding IsActive}" Checked="AnyChange" Unchecked="AnyChange" Style="{x:Null}" Content="{Binding DbName}" Width="{Binding CheckWidth}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView>