문제

나는 개발 중입니다 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 );
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top