2014-06-17 3 views
0

안녕하세요 관계를 통해 자식 표와 관련된 GridDataControl 있습니다. 눈금의 서식을 지정하고 열 머리글 이름을 가져 오는 상위 모눈에 적용되는 동작이 있습니다. 이 동일한 동작을 자식 그리드에 적용하고 싶습니다. 두 그리드의 데이터는 같은 형식이지만 주 자식 그리드는 액세스 할 수 없으며 해당 열만 GridDataVisibleColumn 속성을 통해 전달됩니다.Syncfusion 중첩 된 표 동작

방법에 대한 아이디어가 있으십니까?

+0

그래서 ... 왜 자식 그리드에 액세스 할 수 없습니까? 어떤 맥락에서? 그것은 관계를 통해 어떻게 관련되어 있는가? 어쩌면 그것은 나 일 뿐이지만, 네가 여기에 정확히 뭐라고 요구하는지 모르겠다. –

답변

0

부모 모눈에 동작을 사용하는 동안 아래 코드 조각과 같이 ParentGrid의 RecordExpanded 이벤트를 사용하여 하위 모눈을 가져올 수 있습니다.

코드 조각은 :

protected override void OnAttached() 
{ 
    this.AssociatedObject.Model.Table.RecordExpanded += Parent_RecordExpanded; 
    base.OnAttached(); 
} 

private void Parent_RecordExpanded(object sender, GridDataValueEventArgs<GridDataRecord> e) 
{ 
    var mainGridColumns = e.Value.Table.Model.TableProperties.VisibleColumns; 
    //Here header style is applied to first column in Parent grid. 
    mainGridColumns[0].HeaderStyle = new GridDataColumnStyle(); 
    mainGridColumns[0].HeaderStyle.Background = Brushes.Red; 
    var childGridColumns = e.Value.ChildModels[0].Table.Model.TableProperties.VisibleColumns; 

    //Here, header style is applied to first column of nested grid. 
    childGridColumns[0].HeaderStyle = new GridDataColumnStyle(); 
    childGridColumns[0].HeaderStyle.Background = Brushes.Brown; 
    e.Value.ChildModels[0].Table.CurrentCellValidating += Table_CurrentCellValidating; 
} 

void Table_CurrentCellValidating(object sender, GridDataCurrentCellValidatingEventArgs args) 
{ 
    foreach (var item in (sender as GridDataTable).Model.TableProperties.VisibleColumns) 
    { 
     if (item.MappingName == "OrderID") 
     { 
      // do action 
     } 
    } 
} 

당신은 위의 코드와 같은 ChildModels에서 하위 그리드를 얻을 수 있습니다. ChildModels에는 친 그리드에 중첩 된 모눈의 수를 포함합니다.

여기에서는 상위 모눈의 첫 번째 열과 중첩 된 모눈의 머리글 스타일을 변경했으며 중첩 된 모눈의 CurrentCellValidating 이벤트도 사용했습니다. 마찬가지로 중첩 된 표에서 모든 이벤트를 사용하고 세부 정보를 얻을 수 있습니다.