[英]Display a list of lists in datagrid with WPF
我有一個包含其他類列表的類,並且我希望能夠將該列表用作WPF中數據網格的項源。 是否可以使其他類的內部列表顯示在下拉列表或組合框中。 當用戶單擊包含集合的列時,我只可以顯示另一個子表單,但是如果我可以在主網格上看到並編輯該集合,它將更加優雅。
這是我的班級樣子:
private string ChainID = string.Empty;
private string Chain = string.Empty;
private string State = string.Empty;
private string NonMerchID = string.Empty;
private string ReceiptText = string.Empty;
private string Amount = string.Empty;
**private List<string> CT1 = new List<string>(5);**
private string RecyclingFeeFlag = string.Empty;
private string MinPrompt = string.Empty;
private string MaxPrompt = string.Empty;
CT1是我的問題所在。
好的,所以我的XAML現在看起來像這樣:
<DataGrid AutoGenerateColumns="False" Height="289" HorizontalAlignment="Left" Margin="10,10,0,0" Name="dataGrid1" VerticalAlignment="Top"
Width="481" ItemsSource="{Binding nonMerchData}">
<DataGrid.Columns>
<DataGridTextColumn Header="Chain ID" Binding="{Binding Path=chainID}"></DataGridTextColumn>
<DataGridTextColumn Header="Chain" Binding="{Binding Path=chain}"></DataGridTextColumn>
<DataGridTextColumn Header="State" Binding="{Binding Path=state}"></DataGridTextColumn>
<DataGridTextColumn Header="Non Merch ID" Binding="{Binding Path=nonMerchID}"></DataGridTextColumn>
<DataGridTextColumn Header="Receipt Text" Binding="{Binding Path=receiptText}"></DataGridTextColumn>
<DataGridTextColumn Header="Amount" Binding="{Binding Path=amount}"></DataGridTextColumn>
<DataGridComboBoxColumn Header="CT" x:Name="_CT"></DataGridComboBoxColumn>
<DataGridTextColumn Header="Recycling Fee Flag" Binding="{Binding Path=recyclingFeeFlag}"></DataGridTextColumn>
<DataGridTextColumn Header="Min Prompt" Binding="{Binding Path=minPrompt}"></DataGridTextColumn>
<DataGridTextColumn Header="Max Prompt" Binding="{Binding Path=maxPrompt}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
一切都很好,除了我不知道如何將內部列表綁定到combox列。
我解釋一下,這是一個體系結構錯誤: ComboBox
的作用是顯示選擇列表,因此要選擇一個列表,這導致必須從對象外部提供該列表。 但是在這里,您想顯示/編輯ComboBox
CT1列表中的內容。 我認為除非您移至DataGridTemplateColumn
,否則這不會為您解決問題,盡管即使此解決方案也不是最適合您的方案。
<DataGridTemplateColumn Header="template">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=CT1}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.