如何将集合绑定到WPF中的datagrid列 [英] How to bind collection to datagrid column in WPF

查看:270
本文介绍了如何将集合绑定到WPF中的datagrid列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下模型:

public class Order
{
 public Order()
 {
    Specifications = new List<string>();
 }
 public Guid Id { get; set; }
 public DateTime CreateDate { get; set; }
 public ICollection<string> Specifications { get; set; }
}

 public class Context: INotifyPropertyChanged
 {
    private ObservableCollection<Order> orders;
    public ObservableCollection<Order> Orders
    {
        get { return orders; }
        set
        {
            orders = new ObservableCollection<Order>(value);

        }
    }
 }

我是使用以下命令将集合绑定到Xaml中的datagrid:

I am binding the collection to datagrid in Xaml using:

<Window.DataContext>
        <viewModel:Context/>
</Window.DataContext>
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Orders}" HorizontalAlignment="Stretch" Margin="5" Name="dgUserList" VerticalAlignment="Stretch" >
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Id}"/>
                <DataGridTextColumn Binding="{Binding CreateDate}" />
            </DataGrid.Columns>
</DataGrid>

如何添加另一列以绑定规范?我尝试过:

How can I add another column to bind Specifications? I tried:

<DataGridTemplateColumn>
           <DataGrid ItemsSource="{Binding Specifications}"></DataGrid>
 </DataGridTemplateColumn>

但是我得到


无法解析数据上下文中的规范

can not resolve Specifications in data context


推荐答案

列表框:

<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ListBox ItemsSource="{Binding Specifications}"></ListBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

这篇关于如何将集合绑定到WPF中的datagrid列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆