簡體   English   中英

帶有checkListBox的WPF數據網格

[英]WPF datagrid with checkListBox drop down

我對WPF的開發還很陌生。 我想用以下幾列創建WPF數據網格:CheckBox列,Text列,button列,checkbox框下拉列和combobox下拉列。 我還需要將偵聽器添加到清單框下拉列中。 我已經使用Infragistics Ultragrid在winforms中創建了相同的東西。 看起來像這樣:

我閱讀了有關使用DataGridTemplateColumn在wpf中向datagrid添加一些自定義控件的信息,但不確定如何實現這一點。 模板可以使用組合框和復選框嗎? 一個簡短的代碼示例將非常有用。 我將必須使用基礎設施還是可以使用WPF標准控件來實現此UI?

任何幫助,將不勝感激。

您可以使用標准WPF控件來完成此操作。 這是WPF最重要的部分之一-它非常靈活(通常無需太多努力)。 這是一個示例,可以使您指出正確的方向:

<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。 如果其中包含類似其他DataGrid的RowDetailsTemplate不能完成工作,則您始終可以編寫自己的多選組合框,但是它可能涉及很多,因為默認的組合框沒有我所知道的好方法允許您選擇多個項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM