Tôi đã nhận được AutoGenerateColumns
WPF-DataGrid bị ràng buộc trong mã sau LINQ-to-SQL, hoạt động tốt.Làm thế nào tôi có thể xác định các cột của riêng mình trong một DataGrid WPF?
Nhưng khi tôi cởi AutoGenerateColumns
và xác định các cột của riêng tôi, nó nói với tôi "Bộ sưu tập các mặt hàng phải được sản phẩm nào trước khi sử dụng ItemsSource."
Nhưng tôi không ràng buộc ItemSource
trong XAML của tôi vì vậy Tôi không hiểu tại sao nó không trống rỗng. Tôi cần thay đổi gì để tôi có thể xác định các cột của riêng mình?
XAML:
<UserControl x:Class="TestDataGrid566.AppPages.ManageCustomers"
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"
Loaded="UserControl_Loaded">
<toolkit:DataGrid x:Name="TheDataGrid"
CanUserAddRows="False"
AlternatingRowBackground="#ddd"
CanUserSortColumns="true"
PreviewKeyDown="TheDataGrid_PreviewKeyDown"
AutoGenerateColumns="False"
RowEditEnding="TheDataGrid_RowEditEnding">
<toolkit:DataGridTextColumn Header="Contact Name" Width="SizeToCells"
Binding="{Binding ContactName}"
IsReadOnly="False"/>
</toolkit:DataGrid>
</UserControl>
code-behind:
public partial class ManageCustomers : UserControl
{
private NorthwindDataContext _db = new NorthwindDataContext();
public ManageCustomers()
{
InitializeComponent();
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
LoadData();
}
public void LoadData()
{
var customers = from c in _db.Customers
select c;
TheDataGrid.ItemsSource = customers.ToList();
}
}