GridView
을 사용하여 여러 데이터 열을 표시하는 ListView
이 있습니다.다른 ItemsControls의 일치하는 세로 레이아웃
두 개의 열에는 각 셀에 작은 컬렉션을 표시하는 ItemControl
의 셀 템플릿이 있습니다.
내가 가지고있는 문제는 ItemControl
의 세로 크기가 서로 다른 셀에 있기 때문에 어떤 식 으로든 연결되어 있지 않으므로 줄이 맞지 않는다는 것입니다.
예 :
<ListView Margin="6,6,6,0" ItemsSource="{Binding Controllers}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem" >
<Setter Property="VerticalContentAlignment" Value="Top" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<!-- snip other columns -->
<GridViewColumn Header="Mode">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Modes}" DisplayMemberPath="Name"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Parameters">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Modes}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Blah:" Margin="5,0"/>
<ComboBox>
<ComboBoxItem>Hello</ComboBoxItem>
</ComboBox>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
내 첫번째 생각은 ItemsPanel
으로 그리드를 사용하는 것이었다 : 지금까지
XAML (이주의는 상위 목록보기에서 ONE ROW입니다) ItemsControls
의 행을 공유 할 수 있도록 SharedSizeScope를 사용할 수 있습니다. 그러나, ItemsControl에 의해 동적으로 생성 된 항목을 특정 그리드 행에 할당 할 수있는 방법이 없습니다.
누구나 더 나은 해결책을 제안 할 수 있습니까?
당신은 '수평 StackPanel의'을 '수직'하지 의미하지 않는다? – Phil
@ Phil : 죄송합니다, 두뇌 방귀. 나는 ItemsControl을 의미했다. 수정했습니다. (ItemsControl이 기본적으로 자식을 스택하기 때문에 stackpanel을 생각해 보았습니다.) – GazTheDestroyer
그래서 각 blah에 대해 하나의 모드가 있습니까? 그렇다면 왜 당신의 뷰 모델은 그런 모습을 드러내지 않습니까? – Phil