Wpf ListView中CellTemplate的复选框状态

Wpf ListView中CellTemplate的复选框状态,wpf,xaml,styles,resourcedictionary,Wpf,Xaml,Styles,Resourcedictionary,我试图通过将样式放在资源目录中,来使用样式来防止重复代码 我的问题是,当我们在ListView中有一个GridViewColumn时,其中哪一列有DataTemplate,而在该DataTemplate中,CellTemplate只有一个复选框,当DataTemplate在ResourceDictionary中时,我们可以绑定复选框状态吗 我的XAML中有以下内容: <ListView Name="listView"> <ListView.View>

我试图通过将样式放在资源目录中,来使用样式来防止重复代码

我的问题是,当我们在ListView中有一个GridViewColumn时,其中哪一列有DataTemplate,而在该DataTemplate中,CellTemplate只有一个复选框,当DataTemplate在ResourceDictionary中时,我们可以绑定复选框状态吗

我的XAML中有以下内容:

<ListView Name="listView">
    <ListView.View>
        <GridView AllowsColumnReorder="False">
            <GridViewColumn DisplayMemberPath="{Binding [1]}"/>
            <GridViewColumn DisplayMemberPath="{Binding [2]}"/>
            <GridViewColumn DisplayMemberPath="{Binding [4]}"/>
            <GridViewColumn DisplayMemberPath="{Binding [5]}"/>
            <GridViewColumn DisplayMemberPath="{Binding [6]}"/>
            <GridViewColumn DisplayMemberPath="{Binding [7]}"/>
            <GridViewColumn>
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox IsThreeState="False" IsChecked="{Binding [8]}" Unchecked="CheckBox_Changed" Checked="CheckBox_Changed"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

我试图在资源字典中做类似的事情:

<DataTemplate x:Key="ListViewCheckboxCell">
    <StackPanel>
        <CheckBox IsThreeState="False" IsChecked="Make reference"/>
    </StackPanel>
</DataTemplate>

该列中的值始终是布尔值


提前谢谢

你所做的似乎是正确的。你现在得写了

<GridViewColumn CellTemplate="{StaticResource ListViewCheckboxCell}" />


模板将被考虑在内,您可以在资源字典中保留与原始模板完全相同的模板:绑定是动态解析的,因此当读取XAML时,绑定将自动设置为相关对象,遵循您指示的内容

,但我没有启用AutoGenerateColumns选项,我将源中的列绑定到ListView中的列中。所以我做了这个
你能为你的ListView发布整个XAML代码吗?我想我对你的问题有一个想法,几天前我遇到了几乎相同的问题。如果可能,请编辑您的原始帖子,添加列表视图和列表绑定到的原始集合的完整代码(ItemsSource)我已添加了我的列表视图代码。ItemsSource是我将从数据库中获取的表。但是我将绑定的表中的列并不总是相同的。我将在其他窗口中使用此复选框模板,并且我将绑定的列具有不同的索引。因此,如果我理解正确,复选框将绑定到数据库中每个列的不同列?我需要知道您从数据库中得到了什么,以及列是什么。如果我所想的就是您所拥有的,我建议您从DB中的值创建一个
字典
,将一个键(您的列详细信息)链接到它的值(复选框),因此,您只需绑定到Key&Value,而无需使用神奇的数字进行任何硬编码绑定。yes并不总是同一列,因为它将是同一数据库中的不同表。从1到7的列是文本,其中一列是日期,但最后一列是bool。行的示例(Nvarchar、Nvarchar、Nvarchar、Nvarchar、Date、Nvarchar(但为布尔值))。当你用DB中的值来表示字典时,你的意思是什么?