获取Panel的子级图像

时间:2016-04-19 22:09:04

标签: c# wpf

我有一个面板,我在一个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

所以我的问题是:我怎样才能获得图像?

一个解决方案,因为我知道图像的位置,就是将元素放在那个位置。但是我更喜欢别的东西,因为它不是很干净,如果我有其他图像移动它可能是麻烦的来源。

谢谢!

1 个答案:

答案 0 :(得分:0)

我发现如果您只想更改图像的来源(这是我的情况),您可以更改ContentPresenter的属性Content。不确定如何访问图像...