2011-10-03 8 views
1

확장 오브젝트의 확장 가능한 콜렉션을 주. 할 수 있습니까?Expando 오브젝트의 ObservableCollection 정렬

ObservableCollection을 정렬하는 방법에 대해 this이 발견되었습니다. 그러나 람다 식으로 속성의 이름을 알아야합니다. expando 객체의 속성이 동적이기 때문에이 내용을 알지 못합니다.

답변

0

궁극적으로 ExpandoObject는 참조 된 링크에 기술을 사용하려면 IComparable<T> 또는 IComparable을 구현해야합니다 (수락 된 대답에서 언급 한 기사를 의미한다고 가정 할 때).

ExpandoObject가 this version 인 경우 인터페이스를 구현하지 않습니다. 따라서 직관적 인 대답은이 두 인터페이스 중 하나를 구현하는 것입니다.

기본적으로 ExpandoObject의 두 인스턴스를 비교하여 다른 인스턴스보다 먼저 정렬 할 방법을 알고 있어야합니다.

ExpandoObjects가 완전히 동적 인 경우 (동적으로 확장되는 특정 공통 속성이있는 것과 반대), 논리적으로 두 인스턴스를 비교하여 비교하려면 어떻게해야합니까? 질문에 대한 자세한 내용을 제공 할 수 있다면보다 구체적인 답변을 드릴 수 있습니다.

+0

내 expando 객체는 완전히 동적입니다. 우리는 DB에서 검색된 데이터를 나타 내기 위해 이들을 사용합니다. 사용자가 원하는 열을 기반으로 오름차순 또는 내림차순 개체를 정렬하기 만하면됩니다. DB의 한 열은 expando 개체의 한 속성입니다. – Omar

+0

이 경우 IComparable을 구현할 수 있습니다. 예를 들어 값의 (문자열) 이름을 기반으로 동적 속성 값을 가져올 수 있습니다. 사용자가 지정한대로 http://stackoverflow.com/questions/4939508/get-value-of-c-dynamic-property-via-string을 참조하십시오. –