2010-01-14 2 views
4

내 응용 프로그램에 사용자 지정 "페이지"목록이 있습니다. 각 페이지는 다른 UI보기를 나타냅니다. 문자열 제목 및 아이콘과 같은 간단한 속성이 있지만 기본 도구 모음, 기본 콘텐츠 영역, 사용자 정의 상태 표시 줄 패널 등에 삽입 할 컨트롤 등으로 구성된 복잡한 속성도 있습니다. 페이지 유형은 FrameworkElement을 사용하면 데이터 바인딩이 각 페이지의 XAML 내부에서 올바르게 작동합니다. 지금까지 설명한 모든 내용은 위대한입니다.DataTemplate을 FrameworkElement에서 파생 된 형식에 적용하십시오.

모든 페이지의 목록을 빠르게 표시하려고하면 문제가 발생합니다. 나는 활성 페이지 목록에 바인딩 된 ItemsControl을 가지고 있는데, ItemTemplate에 할당 된 DataTemplate은 페이지의 Title 속성에 바인딩 된 레이블로만 구성됩니다 (언급 한 바와 같이 일반 문자열 임). 내가 그것을 실행하면, 그러나 아무것도 목록에 표시되지 않습니다 나는 오류 출력이 얻을 : 나는 FrameworkElement 아무것도하지만 바인딩 템플릿 작동하지만 데이터를 기본 유형을 변경하면 각 페이지가 무섭게 고장 내

System.Windows.Data Error: 25 : ItemTemplate and ItemTemplateSelector are not valid for item.; Type='WelcomePage'

(ElementName을 통한 항목에 대한 바인딩은 관련 컨트롤 모두가 페이지의 XAML 내에 정의 된 공통 FrameworkElement의 자식이기는하지만 실패합니다.

DataTemplate을 FrameworkElement 파생 형식에 적용하거나 데이터 바인딩이 비 FrameworkElement를 기반으로하는 XAML 파일에서 작동하도록하는 방법에 대해 알고 있습니까?

+0

여전히 이에 대한 대답을 얻으려면 FrameworkElement에서 파생 된 형식의 코드를 게시 할 수 있습니까? Framework 요소에는 기본 구현이없는 많은 속성과 메서드가 있으며 파생 클래스가 올바른 배관을 제공한다고 가정합니다. FrameworkElement에서 파생 된 다른 클래스는 클래스 유형을 변경하는 경우 사물이 작동하는 구현을 제공합니다. –

답변

0

지금은별로 좋지 않지만 비슷한 상황에서 같은 문제가 있습니다. 방금 listview에 대한 아이템 컨트롤을 대체했습니다. listbox을 사용하면 추가 바인딩 오류가 발생합니다.