如何将 ObsevableCollection 项目动态添加到我的窗口,以及什么是保存它们的合适容器
本文关键字:保存 什么 项目 ObsevableCollection 动态 添加 窗口 我的 | 更新日期: 2023-09-27 18:34:21
我需要将自定义类型的ObservableCollection
中的项目添加到窗口中。我使用的是 MVVM,所以这个集合在我的 ViewModel 中。
我的收藏:
public ObservableCollection<Record> RecordsToDisplay { get; set; }
集合中的每条记录都有 X 和 Y 坐标(以及与情况无关的其他属性):
public int X { get; set; }
public int Y { get; set; }
如何考虑集合中的项的 X 和 Y 坐标,将它们添加到窗口中?
什么容器可以满足这种需求?
绑定将如何执行?
编辑:
从文件加载数据后,集合可能会更改,因此我需要容器来处理该事件。
这是一种将 MVVM 方式中的点绑定到画布的方法。
<ItemsControl ItemsSource="{Binding RecordsToDisplay}" BorderBrush="Green" BorderThickness="1" Height="200" Width="200">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Ellipse Fill="Red" Height="5" Width="5"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Background="Orange"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding X}"/>
<Setter Property="Canvas.Top" Value="{Binding Y}"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>