StackPanel 사용으로 ContentControl (WPF)
-
06-09-2019 - |
문제
그래서 콘텐츠 구성으로 사용하는 스택 패널이 있습니다. 나는 내가 바인딩하는 데이터를 기반으로 버튼을 생성하고 싶은 곳이 있고, 그것은 모두 잘 작동하지만, 버튼이 현재 일어나고있는 것처럼 수직으로 가로로 배치되기를 원합니다. 스크린 샷은 다음과 같습니다.
그리고 내 ContentTemplate 설명의 코드는 다음과 같습니다.
<StackPanel Name="wpReleaseButtons" Orientation="Horizontal" Grid.Row="2">
<ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Tag="{Binding}" Padding="3">
<TextBlock Text="{Binding Path=DisplayValue}" />
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
내가 뭘 잘못하고 있는지 잘 모르겠습니다. 모든 정보는 대단히 감사하겠습니다. 감사!
해결책
나는 그것이 보이는 것처럼 보인다 ItemsControl
버튼을 수직으로 표시하는 것입니다. 버튼을 원한다면 ItemsControl
수평이 되려면 필요합니다 StackPanel
안에 있어야합니다 ItemsControl
ItemsPanelTemplate
, 코드에있는 것과 같은 다른 방법은 아닙니다.
<ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Tag="{Binding}" Padding="3">
<TextBlock Text="{Binding Path=DisplayValue}" />
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
나는 약간 잘못 될 수있다 ItemsControl.ItemsPanel
테스트 할 데이터가 없었기 때문에 ...
편집하다: BEA 참조 외에도 좋은 것들이 있습니다. 박사 WPF.
다른 팁
나는 당신의 이미지를 볼 수 없습니다 (회사의 방화벽에 의해 차단되었습니다). 그러나 여기서 나는 어쨌든 간다 ...
당신의 '오리엔테이션 = "수평"'은 아마도 그대로 작동 할 것입니다. 그것은 하나의 자식 요소, Itemscontrol 만 포함합니다. 대신, 컨트롤 템플릿에 오리엔테이션 = "수평"이있는 스택 패널이 포함 된 ItemsControl에 대한 ControlTemplate을 만들어보십시오.
도움이 되었기를 바랍니다!
편집하다:
다시 한번, Bea는 답변/예를 들었습니다!