这个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" });
}
}
}
答案 0 :(得分:7)
答案 1 :(得分:3)
您需要添加
DataContext = Customers;
在你的Window_Loaded()
中答案 2 :(得分:1)
现在从绑定中删除Path = Customers,它应该可以工作:)
答案 3 :(得分:1)
尝试一下: 填充您的客户列表并分配属性ItemsSource
dataGrid1.ItemsSource = _customers;
答案 4 :(得分:0)
我试图弄清楚为什么JohnB的答案给出的相同代码对我不起作用,问题是模型对象(客户)没有属性,但有字段。将它们转换为属性可以解决我的问题。