标题中的关键是我想检索一个对象,特别是一个画布,它包含在我的 listviewitem 的数据模板中。
我在 ViewModel 属性 MySimpleData 中有一个 ObservableCollection整数。与每个 int 相关联的是一个画布。本质上,我使用列表视图来显示一组“图片”。用户可以单击更改“画布”内容的按钮。但是,单个图片对象可以持续多个帧,因此我不会将它们存储在画布中,而是将它们存储在具有起始索引和持续时间的单独位置。我想在我的列表视图中按程序生成每个画布。如何检索每个索引的画布?
我正在寻找以下方面的东西:
MyListView.Items.(Related-DataTemplate).(Related-Canvas)
我的目标是基本上清除所有画布并在需要时重新绘制/刷新它们。这是一个模型/演示,所以我不介意解决方案是否有点 hacky。我只需要一些运行良好且不需要我自己编写控件的东西。
我的意图是迭代 MyListView.items 本质上调用,related-canvas.clear(); 然后对于该画布的图片对象,我将调用related-canvas.addChild(Relevant-Picture-Object);
这是我的 xaml,以防万一。
<ListView Name="MyListView"
ItemsSource="{Binding MySimpleData}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Column1"
DisplayMemberBinding="{Binding}"/>
<GridViewColumn Header="Column2-Canvases"
Width="{Binding DataContext.CanvasWidth, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<Canvas
Width="{Binding DataContext.CanvasWidth, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
Height="{Binding DataContext.CanvasHeight, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
Background="LightSlateGray"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
任何想法将不胜感激。
干杯。