2013-11-02 107 views
1

我想这些按钮旁边的对方,而不是根据对方如何将自动生成的内容DataTemplate相互对齐?

这是一个MVVM,所以按钮被一个类生成

 <ItemsControl ItemsSource="{Binding Pages}" Grid.Column="1"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <StackPanel> 
         <Button Margin="8" Content="{Binding Name}" Command="{Binding DataContext.ChangePageCommand, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" CommandParameter="{Binding}"/> 
        </StackPanel> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 

回答

0

你必须从你的ItemsControl更改默认ItemsPanel成水平导向的一个,这里有一个例子:

<ItemsControl ...> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <Button Margin="8" Content="{Binding Name}" Command="{Binding DataContext.ChangePageCommand, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" CommandParameter="{Binding}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

通过定义一个水平StackPanel为您ItemsControl面板,每个项目将是(请注意,默认的是一个垂直的StackPanel)。

+0

它的工作原理感谢 – denderp

+0

不客气!如果您觉得此答案可以解决问题,请点击绿色复选标记将其标记为“已接受”。这将有助于未来的读者找到他们需要的东西(并相信它),并有助于将重点放在仍然没有答案的旧问题上;) – AirL