1

在我的 WPF 窗口中,我声明了以下内容:

public List<Brand> BrandList;

然后在构造函数中填充列表:

BrandList = new List<Brand>(EntityDao.GetInstance().GetProducts().Select(p => p.Brand).Distinct().OrderBy(b => b.Name));

然后在我的 XAML 代码中,我声明了一个 DataGrid:

<DataGrid <!-- Properties omitted--> >
    <DataGrid.Columns>
        <DataGridTemplateColumn>
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox ItemsSource="{Binding Path=BrandList, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        <!-- Other columns omitted -->
    </DataGrid.Columns>
</DataGrid>

问题是我的组合框是空的。通过调试,我验证了该BrandList对象包含80多个对象,所有对象都定义了一个ToString()方法。

DataGrid 的 ItemsSource 是一个简单的 ObservableCollection。

有任何想法吗?

4

1 回答 1

2

绑定适用于属性,并且您声明了一个公共成员。您应该像这样定义您的列表:

public List<Brand> BrandList { get;set;}
于 2013-03-05T13:26:45.183 回答