使用ItemControl时,WrapPanel不会换行

时间:2017-11-30 20:19:43

标签: c# wpf itemscontrol itemtemplate wrappanel

我有一个WrapPanel,我用UserControls填充了我的ViewModel:

<WrapPanel Width="250" Orientation="Horizontal" Margin="3">
   <ItemsControl ItemsSource="{Binding PlaceableObjectsContent}">
      <ItemsControl.ItemTemplate>
          <DataTemplate DataType="{x:Type local:PlaceableObjectViewModel}">
              <local:PlaceableObjectUserControl>
                 <local:PlaceableObjectUserControl.InputBindings>
                     <MouseBinding MouseAction="LeftClick"
                                                  Command="{Binding DataContext.OnPlaceableObjectClicked, RelativeSource={RelativeSource AncestorType=ItemsControl}}"
                                                  CommandParameter="{Binding}"/>
                 </local:PlaceableObjectUserControl.InputBindings>
              </local:PlaceableObjectUserControl>
          </DataTemplate>
      </ItemsControl.ItemTemplate>
   </ItemsControl>
</WrapPanel>

当我用随机控件填充manuell时,一切正常!因为使用ItemTemplate,我已经阅读了一些关于问题的内容!? 如果是真的,我该如何管理?

由于

1 个答案:

答案 0 :(得分:3)

你将一个ItemsControl放在WrapPanel中。那不会做任何事情。如果您希望ItemsControl使用WrapPanel来托管自己的项目,请按以下步骤操作:

<ItemsControl 
    ItemsSource="{Binding PlaceableObjectsContent}"
    Width="250"
    Margin="3"
    >
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

    <!-- etc. -->