2016-07-06 2 views
0

DataGrid의 원본으로 사용되는 개체 목록이 있습니다. 이 오브젝트 목록은 상속 된 유형이 2 개 이상있는 기본 클래스 유형입니다. DataGrid의 열에 값으로 표시하기 위해 기본 클래스의 속성에 바인딩하려고합니다. 하위 클래스를 사용할 수있는 다른 속성을 사용할 수 있도록하고 싶습니다, 그래서 내 질문에, XAML 동적으로 가리키는 형식을 기반으로 바인딩 값을 변경할 수 있습니까? 잠재적으로 변환기를 사용하여이 일을 생각해 봤지만 올바르게 이해한다면 바인드해야하는 각 하위 클래스 속성마다 다른 변환기를 작성해야합니다. 모든 조언이나 제안을 부탁드립니다. 감사합니다형식에 따라 XAML 바인딩을 동적으로 변경하십시오.

답변

0

아마도 이것은 속성 및 일부 반사를 사용하여 다양한 열에 들어가야하는 속성을 표시 한 다음 그 속성을 자동 생성 할 수 있습니다. 가능한 모든 속성에 대한 열이있는 스파 스 격자를 만들 수도 있습니다. 리플렉션을 통해 가능해야하며 추가 메타 데이터가 필요하지 않습니다.

(할 수 있습니다 자동으로 만들 수 있습니다. 네이티브 DataGrid 이벤트가이 충분하지 않은 경우 연결된 속성 (like this)를 사용하여 항목에 따라 열을)

0

여러 DataTemplates을 정의하고를 통해 의도 유형을 지정 DataType 속성 바인드 된 오브젝트의 유형에 따라 올바른 템플리트가 선택됩니다. 이를 달성하기

https://msdn.microsoft.com/en-us/library/system.windows.datatemplate.datatype(v=vs.110).aspx

+0

열이있는 DataGrid가 아닌 경우 이렇게하는 것이 좋습니다. –

+0

글쎄, DataGrid가 실제로 필요한 컨트롤이 아니라는 것을 의미합니다. ListBox 및 템플릿만으로 손쉽게 멋진 것을 만들 수 있습니다. 각 "행"은 바인딩 된 유형에 맞게 표시됩니다. –

+0

아마도. –

0

수단은 CellTemplateSelector 것이다. 이 부분을 참조하십시오. link.

관련 문제