ObvservableCollection添加我没有要求的列

时间:2014-05-08 18:11:07

标签: c# wpf wpf-controls

我有一个WPF应用程序需要从数据库中检索并显示在数据网格中的客户信息。

一切都在后台工作正常,但是当我将客户添加到ObservableCollection对象时,它正在向我不想要的表中添加一个变量。

这是我使用它的地方:

private void button_DisplayInfo(object sender, RoutedEventArgs e)
{
    // A collection of customer information
    ObservableCollection<Customer> customerCollection = new ObservableCollection<Customer>();

    // Cycle through each customer in the customer list inside customerManager
    foreach (Customer eachCustomer in customerManager.CustomerList)
    {
        customerCollection.Add(new Customer
        {
            Name = eachCustomer.Name,
            CustomerID = eachCustomer.CustomerID,
            DateJoined = eachCustomer.DateJoined
        });
    }
    dataGrid_Main.ItemsSource = customerCollection;
}

问题在于,在数据网格中,我还得到一个列,它是类中的一个公共bool属性,我根本没有指定要读取它,并且它放了一个小的复选框而不是它的值在网格中。有什么办法可以防止这种情况发生,这样我才能从Customer对象中读取(或至少输出)这三个值,而不是属性?

谢谢!

P.S。 bool属性在我的构造函数中设置,如果这意味着与此有关。

2 个答案:

答案 0 :(得分:1)

不要使用DataGrid自动生成列(将AutoGenerateColumns设置为false),并手动指定列。这将使您可以完全控制显示哪些属性以及它们的显示方式。

答案 1 :(得分:1)

在XAML中,使用属性AutoGenerateColumns =“False”并列出DataGrid.Columns中的列,并详细说明它们绑定的内容。