2011-04-21 26 views
1

這裏是我的嘗試:如何設置的ItemSource爲DataGrid的一些陣列從視圖模型

<DataGrid 
    Grid.Row="0" 
    AutoGenerateColumns="True" 
    ItemsSource="{Binding Path = Workers}" 
    Grid.ColumnSpan="1" 
    Name="DataGrid"> 
</DataGrid> 
private Worker[] workers; 
public Worker[] Workers 
{ 
    get 
    { 
     if (IsInDesignMode) return null; 
     return serviceAgent.ParseFile("dataWorkers.xml").ToArray() ; 
    } 
    set 
    { 
     workers = value; 
     NotifyPropertyChanged(m => m.Workers); 
    } 
} 

但我的DataGrid仍然是空的。我究竟做錯了什麼 ?

+0

你在哪裏設置視圖的數據上下文?你在控制檯窗口中看到任何綁定錯誤? – Berryl 2011-04-21 05:09:38

+0

@Berryl,我需要嗎? – Cynede 2011-04-21 05:35:15

回答

2

爲我廣告的作品。以下結果爲我自動填充可編輯的可排序網格。因此,首先按照下圖所示僞造workers數組,並查看它是否有效。 如果是,請調查您的ParseFile方法。如果沒有,看看你是否有正確的數據綁定設置 - 首先將虛假數組放入視圖中。

  • XAML

=

<StackPanel> 
     <DataGrid AutoGenerateColumns="True" 
        ItemsSource="{Binding Path = Workers}" 
        x:Name="DataGrid"/> 
  • 代碼隱藏

=

public class Worker { 
     public int Id { get; set; } 
     public string Name { get; set; } 
    } 

public class MainViewModel 
{ 
    public Worker[] Workers  { 
      get   { 
       return new[]{ 
           new Worker {Id = 1, Name = "Cristiano"}, 
           new Worker {Id = 2, Name = "Lionel"}, 
           new Worker {Id = 3, Name = "Xavi"} 
          }; 
      } 
     } .... 
相關問題