首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用GridViewColumn和DataTemplate的WPF ListView

使用GridViewColumn和DataTemplate的WPF ListView
EN

Stack Overflow用户
提问于 2011-01-18 22:41:50
回答 2查看 72.6K关注 0票数 22

我有一个CheckedListBox控件,它是通过将带有CheckBoxDataTemplate添加到ListView中而创建的。问题是我也需要列。

下面的代码不显示复选框:

代码语言:javascript
复制
<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>

但是,如果我注释掉这段代码,一切都可以正常工作,但没有列:

代码语言:javascript
复制
<ListView.View>
    <GridView >
        <GridViewColumn DisplayMemberBinding="{Binding DbName}" Header="Databases" Width="498"/>
    </GridView>
</ListView.View>

有没有办法做到这一切呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-18 22:51:23

您需要将列的数据模板定义为CellTemplate:

代码语言:javascript
复制
<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>
票数 54
EN

Stack Overflow用户

发布于 2011-01-18 22:55:33

好的,经过一早上的努力,我终于弄明白了。这里的关键是使用CellTemplate:

代码语言:javascript
复制
 <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>
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4725352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档