none
Agregar columnas checkbox a un listview de manera dinámica. RRS feed

  • Pregunta

  • En algunos casos necesito en un mismo listview, crear distintas vistas según los tipos de datos que deseo mostrar.

    En este caso necesito crear una vista en el listview que tenga un checkbox y por más que investigo, no comprendo como puedo agregar dinámicamente (a través de programación, no autogenerado) una columna con checkbox.

    He visto soluciones, pero lo hacen en tiempo de diseño.

    Esto es a través de un listview en WPF.

    Ejemplo de esto es:

    <ListView Height="238" 
                  HorizontalAlignment="Left" 
                  Name="listView1" 
                  VerticalAlignment="Top" 
                  Width="503"
                  ItemsSource="{Binding}"
                  IsSynchronizedWithCurrentItem="True"
                  SelectionChanged="listView1_SelectionChanged">
            <ListView.View>
                <GridView>
                    <GridView.Columns>
                        <GridViewColumn>
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                   <CheckBox Tag="{Binding ID}" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsSelected}" />  
                               </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        <GridViewColumn DisplayMemberBinding="{Binding ID}" Header="ID" />
                        <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Name" />
                    </GridView.Columns>
                </GridView>
            </ListView.View>
        </ListView>

    Pero yo necesito que se haga a través de código.

    Saludos.


    FASIMUS

    martes, 9 de septiembre de 2014 13:42

Todas las respuestas

  • Hola FASimus, la forma más facil es hacerlo por XAML (diseñador como le dices tú) definiendo templates (que también lo puedes definir por código). Y luego para realizar la selección que deseas aplicas un DataTemplateSelector.

    Aquí te presento un ejemplo. Y aquí un tutorial muy completo y útil. Todo se puede hacer por código pero lo mejor es definirlo en XAML.

    Espero te sirva.

    Saludos.


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    MCP Profile

    martes, 9 de septiembre de 2014 15:30