2010-10-31 66 views
2

我是c#的新手,所以很简单。如何将数据表设置为WPF数据网格C#?

基本上我建立一个数据表(我已经验证它不是空的),但它似乎并没有得到显示在我的WPF数据网格......我在这里用这个例子并应用它:link text

我datagrid保持空白。

这个例子对你们看起来不错吗?

这里是我的代码:

XACML:

<Window x:Class="WpfApplication1.TickerSearch" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="TickerSearch" Height="468" Width="907"> 
<Grid Background="#E6000000" Name="_grid"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="244*" /> 
     <ColumnDefinition Width="37*" /> 
    </Grid.ColumnDefinitions> 
    <TextBox Height="34" HorizontalAlignment="Left" Margin="26,15,0,0" Name="txtSearchTker" VerticalAlignment="Top" Width="225" Grid.ColumnSpan="2" /> 
    <Button Content="Search" Height="32" HorizontalAlignment="Left" Margin="76,160,0,0" Name="btnSearch" VerticalAlignment="Top" Width="124" Click="btnSearch_Click" /> 
    <ListBox Height="114" HorizontalAlignment="Left" Margin="26,224,0,0" Name="lstResults" VerticalAlignment="Top" Width="225" Visibility="Hidden" Grid.ColumnSpan="2" Background="#FFFFB000" /> 
    <Button Content="Select" Height="32" HorizontalAlignment="Left" Margin="76,366,0,0" Name="btnSelect" VerticalAlignment="Top" Width="124" Visibility="Hidden" /> 
    <Label Content="Start Date: " Height="25" HorizontalAlignment="Left" Margin="22,65,0,0" Name="label1" VerticalAlignment="Top" Width="71" Background="#00FFB000" FontFamily="Georgia" Foreground="#FFFFB000" /> 
    <Label Content="End Date:" Height="27" HorizontalAlignment="Left" Margin="22,93,0,0" Name="label2" VerticalAlignment="Top" Width="71" Background="#00FFB000" FontFamily="Georgia" Foreground="#FFFFB000" /> 
    <DatePicker Height="22" HorizontalAlignment="Left" Margin="93,65,0,0" Name="dateFrom" VerticalAlignment="Top" Width="138" /> 
    <DatePicker Height="22" HorizontalAlignment="Left" Margin="93,94,0,0" Name="toDate" VerticalAlignment="Top" Width="138" /> 
    <Label Content="Just Today" Height="27" HorizontalAlignment="Left" Margin="22,122,0,0" Name="label3" VerticalAlignment="Top" Width="71" Background="#00FFB000" FontFamily="Georgia" Foreground="#FFFFB000" /> 
    <CheckBox Content="CheckBox" Height="17" HorizontalAlignment="Left" Margin="93,127,0,0" Name="chkBoxToday" VerticalAlignment="Top" Width="15" /> 
    <DataGrid AutoGenerateColumns="False" Height="315" HorizontalAlignment="Left" Margin="285,68,0,0" x:Name="_dataGrid" VerticalAlignment="Top" Width="468" ItemsSource="{Binding Path=.}" Background="#C6F7F700"></DataGrid> 
</Grid> 

C#:

  _ds = new DataSet(); 
      DataTable table = yahooFinance.lookupSymbol(); 
      _ds.Tables.Add(table); 
      _grid.DataContext = _ds.Tables[0]; 
+0

显示一些代码,以便我们可以帮助... – rboarman 2010-10-31 15:51:58

+0

加入到原来的职位 – KP65 2010-10-31 16:00:43

回答

6

将其更改为ItemsSource="{Binding}"

此外,将AutoGenerateColumns设置为true。 (或者明确指定列)

+0

的AutoGenerateColumns为true的伎俩,谢谢! – KP65 2010-10-31 16:08:55

0

没有看到任何代码,我建议最重要的两个点:

  • 设置的DataContext具有XAML中的DataGrid myGrid.DataContext = myDS.Tables[0];
  • 包括ItemsSource属性:

    <dg:DataGrid ItemsSource="{Binding Path=.}"

+0

我已经做了两个,看看我的OP我现在又增加了我的代码,感谢 – KP65 2010-10-31 16:00:59