如何在 ItemsControl 中定位 ViewModel
我的主窗口 ViewModel 有一个 ViewModel 的 ObservableCollection,称为 ViewModel。
Mainwindow XAML 有一个 ItemsControl,其中 ItemsSource 绑定到 ViewModel。
当我将
<ItemsControl ItemsSource="{Binding ViewModels}" />
与集合中每个 ViewModel 关联的视图呈现为一个在另一个之下。视图是用户控件,显示数据网格。
我如何以可定制的方式定位它们,例如,VM1 位于左侧,VM2 和 VM3 堆叠在 VM1 的右侧。
每个 VieModel 都有 PosX、PosY、Width 和 Height 属性,我一直在尝试各种模板方法,但到目前为止没有成功。
我已经找到了如何使用 Observable 图像集合来实现这一点的示例,但我遇到的一件事是我的集合是 ViewModels。
My mainwindow ViewModel has an ObservableCollection of ViewModels, called ViewModels.
The Mainwindow XAML has an ItemsControl with ItemsSource bound to ViewModels.
When I have
<ItemsControl ItemsSource="{Binding ViewModels}" />
The Views associated with each ViewModel in the collection are rendered one below the other. The Views are UserControls, displaying dataGrids.
How can I position them in a customizable way, for example such that VM1 is on the left, and VM2 and VM3 are stacked one on top of the other to the right of VM1.
Each VieModel has PosX, PosY, Width and Height properties, and I've been trying various templating methods but no success so far.
I have found examples of how to this with Observable collections of images, but one thing I'm struggling is that my collection is of ViewModels.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将您的 ItemsControl.ItemsPanel 制作为 Canvas,并在 ItemTemplate 中设置您的顶部/左侧/高度/宽度。
Make your ItemsControl.ItemsPanel into a Canvas, and set your Top/Left/Height/Width in the ItemTemplate.