繁体   English   中英

WrapPanel 与 ItemControl 一起使用时不包装

[英]WrapPanel not wrapping when using it with ItemControl

我有一个 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>

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

谢谢

您将单个 ItemsControl 放在 WrapPanel 中。 那不会有任何作用。 如果您希望 ItemsControl 使用 WrapPanel 来托管其自己的项目,请执行以下操作:

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

    <!-- etc. -->

请注意,必须限制 ItemsControl 的宽度才能使其工作:它必须受其父级或网格列的大小限制,或者甚至通过直接设置 ItemsControl 元素本身的 Width 或 MaxWidth 属性或通过样式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM