2012-09-11 3 views
0

현재 ObservableCollection에 ItemsSource 바인딩으로 채워진 GridView가 있습니다.ItemsSource를 바인딩 한 후 GridView.Items에 수동으로 항목을 추가하는 방법은 무엇입니까?

의도 한대로 항목을 표시하고 있지만 모양이 다르게 다르게 동작하는 끝에 하나 이상의 항목을 수동으로 추가하고 싶습니다. ItemsSource가 바인딩 된 ObservableCollection을 수정하지 않고도이를 수행 할 수있는 방법이 있습니까?

+0

당신이 외모를 보았을 때 그 행동을 자세히 말하면 더 정확하게 무엇을 의미합니까? 또 다른 'DataTemplate' –

+0

기본적으로 그리드에는 이미지 묶음이 있고'모두보기 '라는 마지막 그리드 항목이 있습니다. – xster

답변

0

두이 접근법이있다 : 모델 층에서 뽑아 될 MVVM에게 원래의 컬렉션을 사용

  1. 과 추가 항목이 뷰 - 모델에 추가됩니다. 보기에 필요한 추가 항목이 인 것으로 간주 할 수 있습니다. 예를 들어 '위의 모든 것'을 추가해야하는 투표 옵션의 목록입니다.

  2. ItemsSource을 바인드 할 때 두 개의 콜렉션을 분리 한 다음 IValueConverter을 사용하여 함께 결합/결합하십시오. 이 방법은 더 까다 롭고 두 컬렉션을 분리하여 결합해야하는 경우에만 유용합니다. 하나의 컬렉션에있는 항목 목록과 다른 항목 범주에있는 항목 범주 목록이 결합됩니다.

널리 사용되는 큰 WPF 응용 프로그램에서 두 방법 모두를 성공적으로 사용했습니다. MVVM에 대한 자세한 내용이나 옵션 # 2의 변환기 예제가 필요하면 알려주십시오.

편집 : 당신은 당신이 선택기 DataTemplateSelector 및/또는 ItemContainerStyleSelector를 사용하는 것을 달성 할 수있는 추가 항목의 다른 시각이나 행동을하려는 것을 의미 않은 경우, 질문에 대한 코멘트를 읽기. 최근에 옵션 # 2와 템플릿을 성공적으로 선택하여 사용했습니다.

희망이 도움이됩니다.

0

일부 옵션 :

가 CompositeCollection를 사용하여, 당신은이 XAML입니다 정의 할 수 있습니다. 문제를 해결할 수 있는지 확실하지 않은 경우 조금만 둘러 봐야합니다.

컬렉션의 항목과 추가 항목으로 채워진 새 컬렉션을 배경으로 만듭니다.

새 항목이 추가 된 새 컬렉션을 만들거나 (IEnumerable을 반환하는 것보다) 변환기를 작성하십시오.

나는이 모든 옵션이 모두 새로운 컬렉션이라는 공통된 주제가 있다고 생각합니다. 추가 항목이 없기 때문에 기본적으로 원본 컬렉션에 직접 바인딩 할 수 없으므로 어떤 형태로든 다른 것에 바인딩해야합니다.

관련 문제