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