문제

데이터 바운드 항목 컨트롤에 대한 다음 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. 그렇지 않으면 옵션은 다음과 같습니다.

  1. 다른 컨트롤을 포함합니다 (Label 그리고 Button) 또는 바인딩하는 컬렉션에서 해당 컨트롤을 재현하는보기 모델.
  2. 나만의 글을 쓰십시오 Panel.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top