WPF Datagrid : 런타임에서 XML 필드 바인딩 변경
-
03-07-2019 - |
문제
나는 개발 중입니다 WPF 사용자 컨트롤 XML 파일의 일부를 표시합니다. 컨트롤 외부에서 열 제목 및 필드 데이터 바인딩을 할당 할 수 있도록 사용자 제어를 유연하게 만들려고합니다.
열 제목을 쉽게 변경할 수 있다는 것을 알았지 만 다음 코드에는 약속이있는 것처럼 보였지만 SertmemberPath는 필드 바인딩을 변경하지 않습니다.
public void ChangeColumnDefinitions ( List<XmlGridColumnDefinition> columns )
{
int columnnum = 0;
foreach ( XmlGridColumnDefinition column in columns )
{
this.datagrid.Columns[columnnum].Header = column.Heading;
this.datagrid.Columns[columnnum].SortMemberPath = string.Format ( "Element[{0}].Value", column.FieldName );
++columnnum;
}
}
해결책
더 많은 주위를 바라본 후에 @generic_error 가이 질문과 답변을 찾았습니다. 나는 그의 코드를 약간 수정했고 여기에 내가 더 커스터마이징 할 수있는 이것을 생각해 냈습니다.
public void ChangeColumnDefinitions ( IEnumerable<XmlGridColumnDefinition> columns )
{
this.datagrid.Columns.Clear ();
foreach ( var column in columns )
{
DataGridTextColumn coldef = new DataGridTextColumn
{
Header = column.Heading,
Binding = new Binding ( string.Format ( "Element[{0}].Value", column.FieldName ) )
};
this.datagrid.Columns.Add ( coldef );
}
}
제휴하지 않습니다 StackOverflow