2017-04-12 7 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 속성에 바인딩 된 "보낸 사람"열은 편집 가능하지만 배열 항목에 바인딩 된 다른 항목은 편집 할 수 없습니다.

이 열을 어떻게 편집 가능하게 할 수 있습니까? 이 열을 바인딩 할 다른 옵션이 있습니다, 열의 양을 때마다 다를 수 있습니다.

답변

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를 교체해야