如何将网格的子级绑定到列表?

发布于 2024-08-04 08:56:43 字数 190 浏览 5 评论 0原文

在我的 ViewModel 中,我有一个项目列表,我希望视图中的网格绑定到这些项目(这些项目将是网格子项)。该列表是项目的视图模型列表。

如何将网格绑定到列表(我可以在代码中访问 .children,但不能在 xaml 中访问)? 另外,如何为列表中的视图模型指定数据模板(另一个 xaml 文件),以便它们在网格中正确呈现。

谢谢

In my ViewModel I have a list of items that I would like a grid in my view to bind to (the items will be the grids children). The list is a list of view models for the items.

How do you bind a grid to the list (I can access .children in code but not xaml)?
Also, how do you specify the data template (another xaml file) for the view models in the list so that they are rendered correctly within the grid.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陌若浮生 2024-08-11 08:56:43

使用 ItemsControl 并将 ItemsPanel 设置为 Grid :

<ItemsControl ItemsSource="{Binding TheList}">
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <Grid/>
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
</ItemsControl>

ItemsControlItemContainerStyle 中,您可能想要将 Grid.Row 和 Grid.Column 附加属性绑定到项目的某些属性:

  <ItemsControl.ItemContainerStyle>
    <Style TargetType="{x:Type FrameworkElement}">
        <Setter Property="Grid.Row" Value="{Binding RowIndex}"/>
        <Setter Property="Grid.Column" Value="{Binding ColumnIndex}"/>
    </Style>
  </ItemsControl.ItemContainerStyle>

Use an ItemsControl with the ItemsPanel set to a Grid :

<ItemsControl ItemsSource="{Binding TheList}">
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <Grid/>
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
</ItemsControl>

In the ItemsControl's ItemContainerStyle, you might want to bind the Grid.Row and Grid.Column attached properties to some property of the items :

  <ItemsControl.ItemContainerStyle>
    <Style TargetType="{x:Type FrameworkElement}">
        <Setter Property="Grid.Row" Value="{Binding RowIndex}"/>
        <Setter Property="Grid.Column" Value="{Binding ColumnIndex}"/>
    </Style>
  </ItemsControl.ItemContainerStyle>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文