2009-03-24 17 views
8

AutoGenerateColumns WPF-DataGrid'in kod arkasında arka planda LINQ-to-SQL'e bağlandığım iyi çalışıyor. Ben AutoGenerateColumns çıkarmak ve kendi sütunları tanımlarkenWPF DataGrid'de kendi sütunlarımı nasıl tanımlayabilirim?

Ama, ". ürün toplama ItemsSource kullanmadan önce boş olması gerekir"

bana söyler Ama ben çok benim XAML ItemSource bağlayıcı değilim Neden boş olmadığını anlamıyorum. Kendi sütunlarımı tanımlayabilmem için neyi değiştirmem gerekiyor?

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> 

kod arkasında:

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(); 
    } 
} 

cevap

22

doğrudan içine sütunu koymaya çalışıyoruz DataGrid (nedenle de sütun koymak için çalışıyor ızgaranın Items koleksiyonu ve sizin hatalarınızı açıklar).

<toolkit:DataGrid x:Name="TheDataGrid" 
          CanUserAddRows="False" 
          AlternatingRowBackground="#ddd" 
          CanUserSortColumns="true" 
          PreviewKeyDown="TheDataGrid_PreviewKeyDown" 
          AutoGenerateColumns="False" 
          RowEditEnding="TheDataGrid_RowEditEnding"> 
    <toolkit:DataGrid.Columns>   
     <toolkit:DataGridTextColumn Header="Contact Name" Width="SizeToCells" 
             Binding="{Binding ContactName}" 
             IsReadOnly="False"/> 
    </toolkit:DataGrid.Columns> 
</toolkit:DataGrid> 
koleksiyonuna yerleştirmeniz gerekir.
İlgili konular