首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >checkListBox下拉WPF数据集

checkListBox下拉WPF数据集
EN

Stack Overflow用户
提问于 2015-05-18 15:35:17
回答 1查看 1.6K关注 0票数 0

我对WPF的开发相当陌生。我想创建一个包含以下列的WPF数据集: CheckBox列、文本列、按钮列、核对表框下拉列和组合框下拉列。我还需要将侦听器添加到核对表框下拉列中。我已经在winforms中创建了同样的版本,使用的是。看起来是这样的:

我阅读了使用DataGridTemplateColumn在wpf中添加一些自定义控件到数据框架中的内容,但不知道如何实现。模板可以接受组合框和复选框吗?一个简短的代码示例就很好了。我将不得不使用不碎片,或者这个UI能实现使用WPF标准控件吗?

如能对此提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-18 16:06:20

您可以使用标准的WPF控件来完成这一任务。这是WPF最伟大的部分之一--它非常灵活(通常不需要太多的努力)。下面是一个应该让您指向正确方向的示例:

代码语言:javascript
复制
<DataGrid AutoGenerateColumns="False">
                <DataGrid.Columns>
                    <DataGridCheckBoxColumn Header="Selected"/>
                    <DataGridTemplateColumn>
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <Button Content="Click Me!" 
                                        Command="{Binding myItemCommand}"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    <DataGridTextColumn Header="Task" 
                                        Binding="{Binding TaskText}"/>
                    <DataGridTextColumn Header="Resources" 
                                        Binding="{Binding ResourcesText}"/>
                    <DataGridComboBoxColumn ItemsSource="{Binding AvailableStatuses}" 
                                            SelectedItemBinding="{Binding SelectedStatus}" 
                                            Header="Status" />
                </DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
    <DataTemplate>
        <DataGrid ItemsSource="{Binding Resources}">
            <DataGrid.Columns>
                <DataGridCheckBoxColumn Binding="{Binding IsResourceUsed}"/>
                <DataGridTextColumn Binding="{Binding ResourceName}"/>
            </DataGrid.Columns>
        </DataGrid>
    </DataTemplate>
</DataGrid.RowDetailsTemplate>

如上面所示,一旦您进入了标记,您几乎可以在其中放置任何您想要的控件,并且它们将被重复用于每一行。每个项的绑定都绑定到行所代表的任何对象,因此,如果您有一个DataGrid正在显示的任务对象列表,则该列表中的每个任务都应该具有用于TaskText、ResourcesText等的属性。

编辑:更新代码片段以显示RowDetailsTemplate。如果一个RowDetailsTemplate中有类似于另一个DataGrid的东西无法完成任务,那么您可以编写自己的多选择组合框,但它可能相当复杂,因为默认的DataGrid无法让您选择多个项目。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30307365

复制
相关文章

相似问题

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