2011-02-25 57 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

相關問題