2011-02-17 4 views
1

사용자 정의 컨트롤에서 사용자 정의 객체의 몇 가지 속성을 표시하도록 작성했습니다. 이러한 개체의 인스턴스가 여러 개 있으므로 ObservableCollection을 사용하여 ItemsSource 바인딩을 ListView에 설정할 수 있습니다. 이제 ListView에서 각 클래스 인스턴스에 대해이 UserControl 인스턴스를 표시 할 수 있습니다.올바른 ItemsSource 컨테이너 선택

문제는 ListView의 동작을 실제로 원하지 않는다는 것입니다. 사용자가 전체 UserControl을 선택할 수 없도록하고 싶습니다. 사실 사용자는 UserControl에서 개별 요소를 선택할 수 있어야합니다.

이 UserControls를 넣기 위해 StackPanel을 사용하는 것에 대해 생각했지만 ItemesSource 속성이 없습니다. 이것이 일어날 수있는 쉬운 방법이 있습니까?

답변

6

ListViewItemsControl으로 바꿔서 ItemTemplate을 대상에 맞게 DataTemplate으로 설정하십시오. 패널에서 항목을 레이아웃하는 방법을 변경하려면 ItemsPanel을 설정할 수 있습니다.

<ItemsControl ItemsSource="{Binding Items}" 
       ItemTemplate="{StaticResource ItemTemplate}"> 
    <ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <StackPanel Orientation="Horizontal" /> 
    </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
</ItemsControl> 

example

+0

우수를 참조하십시오. ItemsControl 템플릿에 ScrollViewer를 추가해야했지만 큰 문제는 아니 었습니다. 그 외에는 ListView를 ItemsControl로 바꿀 수있었습니다. 고맙습니다. – Nate