2009-06-01 5 views
5

그래서 ContentControl으로 사용하고있는 StackPanel이 있습니다. 나는 바인딩 할 데이터를 기반으로 버튼을 생성하고 싶습니다. 모든 작업은 잘되고 있지만, 현재 일어나고있는 것과 같이 버튼이 수평이 아닌 수직으로 배치되기를 원합니다.StackPanel을 ContentControl (WPF)로 사용

alt text

을 그리고 여기 내 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> 

확실히 내가 잘못 여기에서하고 난 뭐. 모든 정보는 크게 감사하겠습니다. 감사!

답변

9

나는 ItemsControl 수직 버튼을 표시 무엇처럼 보이는 말할 것입니다.

<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의 버튼을 수평하려는 경우, 당신은 StackPanel 라운드 코드에서 무엇을 같이 ItemsControlItemsPanelTemplate이 아닌 다른 방법으로해야 내가 함께 ...

편집을 테스트 할 데이터 없어으로 ItemsControl.ItemsPanel 비트 : BEA의 기준 이외에Dr WPF하여 좋은 물건이있다.

+0

이것은 그것을했다! !! 대답 주셔서 감사 드리며 Bea의 사이트도 북마크에 추가했습니다. 모두에게 감사드립니다! 이것은 나를 꽤 괴롭히기 시작했다. –

3

나는 (그것이 내 회사의 방화벽에 의해 차단 된 것) 이미지를 볼 수 있지만, 여기에 내가 어쨌든 갈 ...

당신의 '동향 = "수평"'아마 정상적으로 작동 : 그것은 단지 포함 하나의 자식 요소 인 ItemsControl. 대신 ControlTemplate에 Orientation = "Horizontal"인 StackPanel이 들어있는 ItemsControl에 대한 ControlTemplate을 만들어보십시오.

희망이 도움이됩니다.

편집 : 다시 한번

, 베아는 답변/예제를 통해 온다!

http://bea.stollnitz.com/blog/?p=10

+0

+1을 참조하십시오. –