gpt4 book ai didi

c# - 将 ObservableCollection 项目绑定(bind)到 WrapPanel 中的 UserControl?

转载 作者:太空狗 更新时间:2023-10-29 17:28:54 30 4
gpt4 key购买 nike

我可能只是遗漏了一些明显的东西,所以如果这是一个非常愚蠢的问题,我深表歉意。我在 View 中有一个 WrapPanel,我需要绑定(bind)到 ViewModel 上的 ObservableCollection。这个 ObservableCollection 包含不同类型的 ViewModel,在 WrapPanel 中显示时需要绑定(bind)到另一种类型的 View 。目标是创建一个可包装的项目列表,每个项目都通过应添加到 WrapPanel 的较小 View 的实例显示。

我正在使用 MVVM,ViewModel 无法直接访问 View。如果可能的话,我宁愿不在 ViewModel 和 View 之间创建绑定(bind),因此手动将项目添加到 WrapPanel.Children 集合不是一个可行的选择。我不知道如何将子 ViewModel 对象的集合绑定(bind)到 WrapPanel,从而创建另一个 View 的实例并将它们添加到自身。我只是错误地解决了这个问题吗?我认为可能涉及 DataTemplate,但 WrapPanel 似乎没有 DataTemplate,也不是可绑定(bind)的。

感谢您的任何见解。

最佳答案

您需要的是一个使用 WrapPanel 来托管所有项目的 ListView。

<ListView ItemsSource={...}>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<!-- Fill in how you want each item to look here -->
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

关于c# - 将 ObservableCollection 项目绑定(bind)到 WrapPanel 中的 UserControl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1575976/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com