2011-02-25 56 views
1

XAMLnoob WPF数据绑定 - 为什么我的DataGrid没有自动生成列?

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <DataGrid Height="117" HorizontalAlignment="Left" Margin="43,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="200" 
       ItemsSource="{Binding}" AutoGenerateColumns="False" > 
     <DataGrid.Columns> 
      <DataGridTextColumn 
       Header="Id" Binding="{Binding Id}"/> 
      <DataGridTextColumn 
       Header="Name" Binding="{Binding Name}"/> 
     </DataGrid.Columns> 
    </DataGrid> 

* FROM什么,我认为我阅读文档中,这将 使行对每个项目在收集和 列每个属性*

 <DataGrid AutoGenerateColumns="True" Height="117" HorizontalAlignment="Left" ItemsSource="{Binding}" Margin="43,135,0,0" Name="dataGrid2" VerticalAlignment="Top" Width="429"> 
     </DataGrid> 
    </Grid> 
</Window> 

DATA

namespace WpfApplication1 
{ 
    public class Foo 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 
    } 

    class Data 
    { 
     public static IEnumerable<Foo> Foos 
     { 
      get 
      { 
       for (int i = 0; i < 5; i++) 
       { 
        yield return new Foo { Id = i, Name = "Foo" + i.ToString() }; 
       } 
      } 
     } 
    } 
} 

INIT

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     dataGrid1.DataContext = Data.Foos; 
     dataGrid2.DataContext = Data.Foos; // corrected thanks to post/answer 
    } 
} 

结果

编辑从海报修正后(谢谢!)我都行,但没有列权数。 (这是我以前放在一起这篇文章,我所看到将是原来的问题,如果我没有疯玩起来)

enter image description here

回答

1

编辑:

试试这个

dataGrid1.DataContext= new ObservableCollection<Foo>(Data.Foos); 
    dataGrid2.DataContext= new ObservableCollection<Foo>(Data.Foos); 

这里有一些有用的材料ObservableCollection

+0

感谢捕捉,我欺骗了:)我更新了问题。 – 2011-02-25 04:10:18

+0

宾果!谢谢.. – 2011-02-25 04:56:29

相关问题