我有一个面板,我在一个Window中添加了ItemsControl的ItemsPanel
<Grid x:Name="outerGrid" >
<ItemsControl ItemsSource="{Binding ImageSourcesCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<view:CustomPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
正如您在此面板中看到的,我展示了一系列图像。一切正常,但现在我想从CustomPanel内部访问这些图像,将Source更改为其中一个。
如果我将它们作为base.Children的元素访问,我获得了一个ContentPresenter,即:
var element = base.Children[i]; //<- this is a ContentPresenter
所以我的问题是:我怎样才能获得图像?
一个解决方案,因为我知道图像的位置,就是将元素放在那个位置。但是我更喜欢别的东西,因为它不是很干净,如果我有其他图像移动它可能是麻烦的来源。
谢谢!
答案 0 :(得分:0)
我发现如果您只想更改图像的来源(这是我的情况),您可以更改ContentPresenter的属性Content。不确定如何访问图像...