在MVVM中将Observable集合绑定到wrappanel
本文关键字:绑定 wrappanel 集合 Observable MVVM 中将 | 更新日期: 2023-09-27 17:53:18
我有一个类型为XYZ的对象和一个视图模型XYZViewModel。我有这个对象的数据模板
<DataTemplate DataType="{x:Type vm:XYZViewModel}">
<Grid>
/ some ui
</Grid>
</DataTemplate>
我有一个视图模型"ListXYZViewModel",其中包含"XYZViewModel"列表。现在我应该显示这些对象的列表。
哪一个是最好的方法?我想把它放在包装板里展示。我做了这个
<ItemsPanelTemplate x:Key="WrapPanelTemplate">
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
<DataTemplate DataType="{x:Type vm:ListXYZViewModel}">
<Grid>
<ItemsControl ItemsSource="{Binding HomeViewModel}" ItemsPanel="{StaticResource WrapPanelTemplate }"></ItemsControl>
</Grid>
</DataTemplate>
这个不行,有什么建议吗?
这对你有用吗?
<ItemsControl ItemsSource="{Binding HomeViewModel}" ItemsPanel="{StaticResource WrapPanelTemplate }">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type vm:ListXYZViewModel}">
<Grid>
<!-- your ui -->
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
尝试显式设置ItemTemplate
:
<ItemsControl
ItemsSource="{Binding HomeViewModel}"
ItemsPanel="{StaticResource WrapPanelTemplate}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
/ some ui
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>