2017-03-12 4 views
0

Wenn ich einen Personal-Klasse haben, möchte ich die TB Bindung [] auf die Datagrid-Spalten Staff.csWie das Array Bindung [] an die Datagridtextcolumn dynamiclly wpf

public class Staff 
{ 
    public string Name { get; set; } 
    public float? Test_Score { get; set; } 
    public float? Net_Income_Tax { get; set; } 
    public float temp { get; set; } 
    public float[] TB = new float[100]; 
    public float TB_Sum { get; set; } 

} 

in der Seite, mein Code ist wie folgt:

public ObservableCollection<Staff> Staff_Show = new ObservableCollection<Staff>(); 
public int StaffShowSize; 

public TaxBefore_Sum(ObservableCollection<Staff> StaffAccept) 
{ 

    InitializeComponent(); 
    Staff_Show = StaffAccept; 
    StaffShowSize = Staff_Show.Count; 


    DataGrid1.ItemsSource = this.Staff_Show; 

    //this is to dynamiclly to create new DataGridTextColumn,but 
    //final ,only create the columns' header is"0",and no data to show,however,the TB[i] have data,but can't show like the picture 
    for (int i = 0; i < StaffShowSize; i++) 
    { 
     DataGridTextColumn c = new DataGridTextColumn(); 
     c.Header = Convert.ToString(i + 1); 
     c.Binding = new Binding("TB[i]"); 
     DataGrid1.Columns.Add(c); 
    } 
} 

die „für()“ Satz ist dynamiclly neuen Datagridtextcolumn zu schaffen, aber Finale schafft nur die Spalten mit Kopf, und keine Daten, jedoch zu zeigen, die TB [ Ich habe Daten, aber kann nicht wie das Bild zeigen: enter image description here

, wenn ich den Code zu

geändert
c.Binding = new Binding("TB[" + i + "]"); 

es zeigt und indem diejenigen dass enter image description here

+0

Wha t versuchst du es endlich zu tun? – AnjumSKhan

Antwort

1

Hier ist, was Sie brauchen ...

c.Binding = new Binding("TB[" + i + "]"); 

auch Definition von TB ...

public float[] TB { get; set; } = new float[100]; 
+0

Es funktioniert jedoch nicht. –

+0

und ich weiß nicht, wie ich Ihnen mein Bildschirm Shoutcut in der coment –

+0

der Header der Spalte wurde 1-N, aber die Daten wurden nicht an die DataGridTextColumn, keine Daten –