2009-02-26 11 views
2

Ich habe LINQ-to-SQL/NorthWind in WPF eingerichtet.Warum kann ich an ListBox aber nicht an DataGrid in WPF binden?

Die ListBox zeigt Daten, aber das DataGrid nicht (keine Fehler, nur nichts angezeigt).

Ich referenzierte WPFToolkit.dll.

Warum zeigt das DataGrid nicht die Daten, die ListBox kann?

XAML:

<Window x:Class="TestLinq343.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:dg="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit" 
    Title="Window1" Height="300" Width="300"> 
    <Window.Resources> 
     <DataTemplate x:Key="ShowCustomer"> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding CategoryID}"/> 
       <TextBlock Text=": "/> 
       <TextBlock Text="{Binding ProductName}"/> 
      </StackPanel> 
     </DataTemplate> 
    </Window.Resources> 
    <Grid> 
     <dg:DataGrid x:Name="TheDataGrid" AutoGenerateColumns="True"></dg:DataGrid> 
     <ListBox x:Name="TheListBox" ItemTemplate="{StaticResource ShowCustomer}"/> 
    </Grid> 
</Window> 

Code hinter:

using System.Linq; 
using System.Windows; 
using TestLinq343.Model; 
using Microsoft.Windows.Controls; 

namespace TestLinq343 
{ 
    public partial class Window1 : Window 
    { 
     public Window1() 
     { 
      InitializeComponent(); 

      NorthwindDataContext db = new NorthwindDataContext(); 
      var sortedProducts = 
       from p in db.Products 
       orderby p.UnitsInStock descending 
       select p; 

      TheDataGrid.ItemsSource = sortedProducts; 
      TheListBox.ItemsSource = sortedProducts; 
     } 
    } 
} 

Antwort

1

Es war nur ein XAML Problem, dies behebt es:

<ScrollViewer> 
    <StackPanel> 
     <dg:DataGrid x:Name="TheDataGrid"/> 
     <ListView x:Name="TheListView" ItemTemplate="{StaticResource ShowCustomer}"/> 
    </StackPanel> 
</ScrollViewer> 
0

vielleicht, weil Sie nicht Spalten Datagrid specifiy haben. Versuchen Sie, die datagrids AutoGenerateColumns-Eigenschaft auf true festzulegen.

+0

versucht, dass, immer noch leer, Autogeneratecolumns wahr sein Standard ist, in der Walkthrough Ich folge http://windowsclient.net/wpf/ wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx, es definiert die ItemsSource in der XAML, aber das sollte keine Rolle spielen, oder? –

Verwandte Themen