Ich habe ein AutoGenerateColumns
WPF-DataGrid in Code-Behind gebunden an LINQ-zu-SQL, das funktioniert gut.Wie kann ich meine eigenen Spalten in einem WPF DataGrid definieren?
Aber wenn ich aus den AutoGenerateColumns
nehmen und meine eigenen Spalten definieren, es sagt ich „Die Artikel Sammlung vor der Verwendung Itemssource muss leer sein.“
Aber ich bin nicht die ItemSource
in meinem XAML Bindung so Ich sehe nicht, warum es nicht leer ist. Was muss ich ändern, damit ich meine eigenen Spalten definieren kann?
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();
}
}