如何为ListView中的每个列项设置模板?

时间:2011-12-12 06:17:50

标签: c# wpf listview

我想根据列设置项目的模板。很明显,设置类似GridViewColumn.ItemTemplate的模板。是否有可能做到这一点?Fisrt我使用ListBox,但由于某些原因我去listView

3 个答案:

答案 0 :(得分:1)

你可以使用这样的东西:

<DataGrid.Resources>
    <DataTemplate x:Key="cellTemplate1">
        <Grid>
            …
        </Grid>
    </DataTemplate>    
    <DataTemplate x:Key="cellTemplate2">
        <Grid>
            …
        </Grid>
    </DataTemplate>
    <DataTemplate x:Key="cellTemplate3">
        <Grid>
            …
        </Grid>
    </DataTemplate>
</DataGrid.Resources>

<DataGrid.Columns>                
    <DataGridTemplateColumn CellTemplate="{StaticResource cellTemplate1}" />
    <DataGridTemplateColumn CellTemplate="{StaticResource cellTemplate2}" />
    <DataGridTemplateColumn CellTemplate="{StaticResource cellTemplate3}" />
</DataGrid.Columns>

cellTemplate1将是整个第一列的模板,cellTemplate2 - 第二列等等。

答案 1 :(得分:0)

使用DataGrid。它在处理列方面要好得多。

答案 2 :(得分:0)

你可以这样做,但设置GridViewColumn.CellTemplate属性....它可以让你按照你希望的方式制作Column .. :)

    <ListView Name="lv"
                       ItemsSource="{Binding Path=MyFavList}">
    <GridView>
        <GridViewColumn>
            <GridViewColumn.CellTemplate>
                <DataTemplate>
                      <!--Your Fav Controls-->
                </DataTemplate>
            </GridViewColumn.CellTemplate>
        </GridViewColumn>
    </GridView>

    </ListView >

我认为这应解决问题...... :)尽管DataGrid是一个更好的选择,就开箱即用的功能而言......;)