2017-04-12 4 views
0

SilverlightアプリケーションにDataGridというオブジェクトがあり、オブジェクトの配列にバインドされています。列は変数になりますので、私は、配列項目にそれらのそれぞれをバインド:Silverlight編集可能な配列項目にバインドされた列を作成する

マイオブジェクト:

public class TravelTimeItem 
{   
    public string From { get; set; } 
    public int[] Times { get; set; } 
} 

を、私はそれで私のグリッドを構築する:

grdTravelTime.Columns.Clear(); 

grdTravelTime.Columns.Add(new DataGridTextColumn() { 
    Binding = new Binding("From")     
}); 

for (int i=0; i < amountOfColumns; i++) 
    grdTravelTime.Columns.Add(new DataGridTextColumn() 
    { 
     Binding = new Binding("Times[" + i.ToString() + "]"), 
     Header = (i + 1).ToString() 
    }); 

grdTravelTime.AutoGenerateColumns = false; 
grdTravelTime.IsReadOnly = false; 
grdTravelTime.ItemsSource = GetItems(); 

上記のコードが動作していますすべての配列値がグリッドに正しく表示されているのがわかりますが、編集可能な値が必要です。単純なSTringプロパティにバインドされた「From」列は編集可能ですが、配列項目にバインドされた他の列は編集できません。

この列を編集するにはどうすればよいですか?この列をバインドする他のオプションは、列の量が毎回異なる可能性を考慮に入れていますか?

答えて

2

この列を編集するにはどうすればよいですか?

public class TravelTimeItem 
{ 
    public string From { get; set; } 
    public YourType[] Times { get; set; } 
} 

public class YourType 
{ 
    public int Value { get; set; } 
} 
... 
for (int i = 0; i < amountOfColumns; i++) 
    grdTravelTime.Columns.Add(new DataGridTextColumn() 
    { 
     Binding = new Binding("Times[" + i.ToString() + "].Value"), 
     Header = (i + 1).ToString() 
    }); 
:あなたは公共のセッターを持つプロパティを持つカスタムタイプで intを交換する必要が

関連する問題