【问题标题】:Display a list of lists in datagrid with WPF使用 WPF 在数据网格中显示列表列表
【发布时间】:2013-06-25 15:38:51
【问题描述】:

我有一个类,其中包含其他类的列表,我希望能够将该列表用作 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>

一切都很好,只是我不知道如何将我的内部列表绑定到组合框列。

【问题讨论】:

  • 发布相关的 XAML。
  • 除了@HighCore的评论,你有没有试过DataGridComboBoxColumn?似乎是天生的候选人

标签: c# wpf wpfdatagrid


【解决方案1】:

有一个架构错误,我解释说:ComboBox 的角色是显示选择列表,所以要选择一个,这导致必须从您的对象外部提供该列表。但在这里,您想显示/编辑ComboBox 中 CT1 列表中的内容。我认为除非您转到DataGridTemplateColumn,否则这对您没有用处,尽管即使这种解决方案也不是最适合您的方案。

<DataGridTemplateColumn Header="template">
     <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding Path=CT1}"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>                            
</DataGridTemplateColumn>

【讨论】:

    猜你喜欢
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    相关资源
    最近更新 更多