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;
}
}
}
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? –