2011-03-09 2 views
1

미리 도움을 청하십시오. 코드에서 celleditingtemplate (datatemplate)에있는 usercontrol에 대한 바인딩을 설정해야합니다. 즉 동일한 데이터 템플릿을 가리키는 celleditingtemplate이있는 2 개의 datatemplatecolumn이있는 격자가 있습니다. 사용자가 편집중인 셀을 기반으로 celleditingtemplate의 바인딩을 동적으로 변경해야합니다. 도움이 될 것입니다.CellEditingTemplate의 동적 바인딩

감사합니다.

다음은 샘플 코드입니다. 이 별도의 리소스 파일

<DataTemplate x:Key="TextCellEditingTemplate">   
      <UserControls:TextControl HorizontalAlignment="Left"/>  
</DataTemplate> 

이 내가 바인딩을 설정해야 페이지 뒤에있는 코드입니다.

private void datagrid_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)   
{    
var row = e.Row;    
var column = e.Column as DataGridTemplateColumn;    
if (column != null)    
    {     
//sets the template based on the dataelement     
column.CellEditingTemplate = UserControlFactory.GetCellEditingTemplate(((row.DataContext) as CollectionData).DataElement);         
    }   
} 

답변

0

발견.

private void datagrid_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e) 
    { 
     e.EditingElement.DataContext = CollectionDataToEdit; 
    } 

감사