为什么我的WPF Datagrid不显示数据?

时间:2009-03-23 10:51:29

标签: c# wpf datagrid

这个walkthrough表示你可以在一行中创建一个WPF数据网格,但没有提供完整的例子。

所以我创建了一个使用通用列表并将其连接到WPF数据网格的示例,但它没有显示任何数据。

我需要更改下面的代码才能让它在数据网格中显示数据?

解答:

此代码现在可以使用:

XAML:

<Window x:Class="TestDatagrid345.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
    xmlns:local="clr-namespace:TestDatagrid345"
    Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
    <StackPanel>
        <toolkit:DataGrid ItemsSource="{Binding}"/>
    </StackPanel>
</Window>

代码背后:

using System.Collections.Generic;
using System.Windows;

namespace TestDatagrid345
{
    public partial class Window1 : Window
    {
        private List<Customer> _customers = new List<Customer>();
        public List<Customer> Customers { get { return _customers; }}

        public Window1()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            DataContext = Customers;

            Customers.Add(new Customer { FirstName = "Tom", LastName = "Jones" });
            Customers.Add(new Customer { FirstName = "Joe", LastName = "Thompson" });
            Customers.Add(new Customer { FirstName = "Jill", LastName = "Smith" });
        }
    }
}

5 个答案:

答案 0 :(得分:7)

答案 1 :(得分:3)

您需要添加

DataContext = Customers;

在你的Window_Loaded()

答案 2 :(得分:1)

现在从绑定中删除Path = Customers,它应该可以工作:)

答案 3 :(得分:1)

尝试一下: 填充您的客户列表并分配属性ItemsSource

        dataGrid1.ItemsSource = _customers;

答案 4 :(得分:0)

我试图弄清楚为什么JohnB的答案给出的相同代码对我不起作用,问题是模型对象(客户)没有属性,但有字段。将它们转换为属性可以解决我的问题。