2009-06-22 6 views
1

나는 탭으로 된 관용구로 표현하고자하는 POCOs (Plain old CLR Objects)의 ObservableCollection을 가지고 있습니다. MVVM 패턴을 사용하면 TabItem 컬렉션을 내 POCO 컬렉션 수에 바인딩 할 수 있습니까?Silverlight 3 - TabControl의 동적 TabItem

내 컬렉션에 3 개의 항목이있는 경우이 경우 3 개의 TabItem을보고 싶습니다. 각 TabItem에는 같은 위치에 동일한 컨트롤이 포함되며 각 컨트롤은 컬렉션의 적절한 개체 속성에 바인딩됩니다.

나는 사용할 수있는 접근법이나 예제에 대한 링크의 개요를 찾고 있습니다. 더 많은 정보가 필요하면 언제든지 물어보십시오.

감사합니다.

답변

2

아마도 POCO 항목이있는 ObservableColletion을 만들 것입니다. 그런 다음 ObservableCollection을 Silverlight Item Rendering 컨트롤 중 하나에 바인딩 할 수 있습니다. 탭을 만들기 위해 기본 렌더링 템플릿을 수정해야하지만,이 방법을 사용하면 코드 숨김 파일에 코드를 넣지 않아도 탭이 컬렉션의 항목에 지속적으로 최신 상태가됩니다. 단지보고 조금 아래로 스크롤 ...

http://silverlight.net/forums/t/12271.aspx

: 여기 UPDATE

누군가가 샘플 XAML 코드로의 ItemsControl을 사용하여 TabControl에 구축 실버 포럼에 대한 링크입니다 샘플.

+0

저스틴; 답장을 보내 주셔서 감사합니다. POCO 항목은 ObservableCollection에 있습니다 (이를 반영하기 위해 내 게시물을 편집했습니다). 그런 다음 컬렉션의 항목 수를 기반으로 TabItems를 생성하는 방식으로 해당 컬렉션을 바인딩하는 방법은 무엇입니까? –

+0

@Steve - 간단한 ItemsControl을 사용하고 ItemsControl을 탭으로 렌더링하기 위해 사용자 지정 템플릿을 만든 다음 ObservableCollection을 ItemsControl에 바인딩합니다. 탭은 컬렉션의 항목을 기반으로 올바르게 생성됩니다. –

+0

저스틴. 감사. 나는 네가 한 말의 대부분을 따른다고 생각한다. 예제를 가르쳐 주시겠습니까? 나는 내 오웬을 관리 할 수 ​​있다고 생각하지만, 그 예가 더 빨리 진행될 수도 있습니다. 감사. –

0

이 작업을 수행하는 한 가지 방법은 값 변환기 (IValueConverter)를 사용하여 TabItem에서 래핑 된 POCO를 반환하는 것입니다. 관련 질문의 일환으로 here이라는 예를 게시했습니다. 또한 값 변환기에 대한 매개 변수로 ViewModel의 xaml 바인딩 및 주입 샘플이 있습니다.

/jhd