2009-08-13 4 views
0

현재 SubSonic3과 함께 Linq 템플릿을 사용하여 모델을 만듭니다. Notes 클래스가있는 간단한 Member 클래스가 있습니다. Note 클래스에는 PublishedDate 및 Title 속성이 있습니다.XAML의 자식 컬렉션에 대한 간접 바인딩

나는 DataContext에 대한 회원 모음을 가진 UserControl을 보유하고 있습니다. ListBoxesTextBoxes이라는 무리가 있으며 그 위에 다른 컨트롤이 있습니다. 첫 번째 ListBox (membersList)은 UserControl DataContext에서 ItemsSource을 가져오고 각 항목에 몇 가지 멤버 속성을 표시합니다. 두 번째 ListBox (notesList)은 첫 번째 ListBox에서 선택한 멤버의 Notes 컬렉션을 표시하고 싶습니다.

지금까지 notesList에 내가 가진 :

<ListBox ... ItemsSource="{Binding Notes}"...> 
    <DataTemplate> 
     <TextBox Text="{Binding Title}"/> 
    </DataTemplate> 

그것은 부분적으로 작동합니다. 메모 항목이있는 회원을 선택하면 notesListBox에 정확한 개수의 항목이 있지만 이것은 교대 행 색상에서만 볼 수 있습니다 - 그 밖의 것은 없습니다! DataTemplate은 메모의 제목을 렌더링하지 못합니다. 기본적으로 ListBoxListBoxItem의 모든 비주얼 스타일이 번갈아 나타나며, 색상, 선택 영역 테두리, 마우스 오버 등이 번갈아 표시되지만 내용은 표시되지 않습니다. 문제는 제 바인딩 구문이지만 잘못된 점을 파악할 수 없다는 느낌이 들었습니다.

모든 의견을 크게 기뻐할 것입니다.

건배, Dany.

답변

1

템플릿에 ContentPresenter이 포함되어 있는지 확인하십시오. 목록 상자를 템플릿으로 만들 때이 것을 버렸을 수 있습니다.

이 문제를 해결하면 전체 템플릿이지만 '콘텐츠'가 표시되지 않으므로 각 목록 상자 항목에 포함될 실제 항목을 배치 할 수있는 공간이 없기 때문에 발생할 수 있습니다.

+0

안녕하세요, 빠른 응답을 주셔서 감사합니다. 네, 이미 컨트롤 템플릿에 ContentPresenter가 있습니다. ControlTemplates는 membersList 및 notesList에 대해 동일합니다. 유일한 차이점은 DataTemplates입니다. membersList ListBox는 아주 잘 표시되어 있으며 문제가되는 것은 notesListBox뿐입니다. – codedog

관련 문제