WPF Itmestrol 데이터 바인딩 - 추가 초기 컨트롤 추가
-
03-07-2019 - |
문제
데이터 바운드 항목 컨트롤에 대한 다음 XAML이 있습니다. 그룹 목록을 표시하고 레이블과 버튼이있는 새 그룹을 먼저 추가합니다.
<WrapPanel Orientation="Horizontal">
<Label Content="Groups" />
<Button x:Name="btnGroupAdd" Click="btnGroupAdd_Click" Content="+" />
<ItemsControl ItemsSource="{Binding}" x:Name="_groupList" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal">
</WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Padding="3" BorderThickness="1">
<WrapPanel>
<CheckBox x:Name="_groupEnabled" Click="GroupEnabled_Click" IsChecked="{Binding Path=Checked}">
<TextBlock x:Name="_groupName" Text="{Binding Path=Group.Name}" ></TextBlock>
</CheckBox>
<Button x:Name="_deleteGroup" FontStyle="Normal" Click="DeleteGroup_Click" />
</WrapPanel>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
소수의 그룹이 있으면 모든 것이 한 줄에 나타납니다.
Groups + Group1 Group2 Group3
더 많은 그룹을 추가하면 항목 랩이 포함 된 랩 패널이 있지만 새 그룹을 추가하는 초기 레이블과 버튼은 자체 행에 있으며 데이터 게시 그룹은 다음 행에서 시작합니다.
그룹 +
Group1 Group2 Group3 Group4
그룹 5
랩 패널이 중첩되어 있기 때문에 이것이 왜 발생하는지 이해할 수 있습니다. 내 질문은 : 내부 랩 패널에 첫 번째 레이블과 버튼을 자체적으로 연주하지 않도록 어떻게 포함합니까?
Groups + Group1 Group2 Group3
Group4 Group5
해결책
당신이 이것에 만족한다면 :
Groups + Group1 Group2 Group3
Group4 Group5
그런 다음 외부를 사용하는 것이 좋습니다 Grid
그리고 내부 WrapPanel
. 그렇지 않으면 옵션은 다음과 같습니다.
- 다른 컨트롤을 포함합니다 (
Label
그리고Button
) 또는 바인딩하는 컬렉션에서 해당 컨트롤을 재현하는보기 모델. - 나만의 글을 쓰십시오
Panel
.
제휴하지 않습니다 StackOverflow