![](/img/trans.png)
[英]Why is the ComboBoxColumn very slow on drop-down open in DataGrid 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.