簡體   English   中英

我可以創建一個包含列表的 object 的 DataGrid<keyvaluepair> 在水平視圖中?</keyvaluepair>

[英]Can I create a DataGrid of an object containing a List<KeyValuePair> in horizontal view?

我有一個要在數據網格中顯示的項目列表。 但是每個項目都包含一個我想水平查看的 KeyValuePairs 列表。 有什么辦法嗎?

我想介紹的 object:

 public class ItemModel
    {
        public string Model { get; set; }

        public List<KeyValuePair<string, int>> DetailsList { get; set; }
    }

我的 xaml 看起來像這樣,但它返回一個數據網格,其中 Key 和 Value 作為列而不是 Key1、Key2、Key3 等作為列:

<DataGrid x:Name="PurchaseOrder" CanUserAddRows="False" AutoGenerateColumns="False" CellEditEnding="PurchaseOrder_CellEditEnding">               
                <DataGrid.Columns>
                <DataGridTextColumn Header="Model" Binding="{Binding Path=Model}" />
                   <DataGridTemplateColumn Header="">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                <DataGrid ItemsSource="{Binding DetailsList}" CanUserAddRows="False" 
                  AutoGenerateColumns="True" CellEditEnding="Models_CellEditEnding">
                                    </DataGrid>
                                </StackPanel>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
        </DataGrid>

這是一個如何綁定到鍵值對 + 水平視圖的簡單示例

        <DataGrid x:Name="PurchaseOrder" CanUserAddRows="False" AutoGenerateColumns="False" CellEditEnding="PurchaseOrder_CellEditEnding">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Model" Binding="{Binding Path=Model}" />
            <DataGridTemplateColumn Header="">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ItemsControl ItemsSource="{Binding DetailsList}">
                            <ItemsControl.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <VirtualizingStackPanel Orientation="Horizontal"/>
                                </ItemsPanelTemplate>
                            </ItemsControl.ItemsPanel>

                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="{Binding Key}"/>
                                        <TextBlock Text="{Binding Value}"/>
                                    </StackPanel>
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
                        </ItemsControl>

                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

暫無
暫無

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

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