簡體   English   中英

使用WPF在datagrid中顯示列表列表

[英]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.

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