我有一个 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 属性来限制,直接或通过样式。
关于c# - WrapPanel 与 ItemsControl 一起使用时不会换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581919/