2010-10-31 9 views
2

Je suis nouveau sur C# alors allez-y doucement.Comment définir une datatable à un C#?

Fondamentalement, je construis une table de données (et je l'ai vérifié est pas vide) mais il ne semble pas s'affiche dans mon WPF DataGrid ... J'ai utilisé cet exemple ici et l'a appliqué: link text

Mon DataGrid reste vide.

Cet exemple vous va-t-il bien?

voici mon code:

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

Afficher du code afin que nous puissions vous aider ... – rboarman

+0

ajouté dans le message original – KP65

Répondre

6

changement à ItemsSource="{Binding}".

De même, définissez AutoGenerateColumns sur true. (Ou spécifier explicitement les colonnes)

+0

AutoGenerateColumns à vrai fait l'affaire, merci ! – KP65

0

sans voir le code, je vous suggère les deux points les plus importants sont :

  • réglage de la DataContext avec myGrid.DataContext = myDS.Tables[0];
  • ayant votre DataGrid XAML comprennent la propriété ItemsSource:

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

+0

J'ai fait les deux, voir mon op j'ai ajouté mon code maintenant, merci – KP65

Questions connexes