gpt4 book ai didi

wpf - ItemsControl 子属性不获取父级的数据上下文

转载 作者:行者123 更新时间:2023-12-02 03:32:59 24 4
gpt4 key购买 nike

我的 View 模型中有一个属性:

public BitmapImage MyImage {get; set;}

我有一个 ItemsControl,它的项目有一些图像和一些文本。 itemscontrol 的项目中的图像之一应该是 MyImage。但是,ItemsControl 有一个 ItemsSource 属性,我将其设置为绑定(bind) Path=Result,并且我知道 itemscontrol 中的所有项目都采用 Result 的数据上下文。

所以,现在当我做这个的时候:

<Image Source="{Binding Path=MyImage}"  />

当然,我得到了错误:

BindingExpression path error: 'MyImage' property not found on 'object' ''KeyValuePair`2' (HashCode=-853042223)'. BindingExpression:Path=MyImage; DataItem='KeyValuePair`2' (HashCode=-853042223); target element is 'Image' (Name=''); target property is 'Source' (type 'ImageSource')

System.Windows.Data 错误:40:

发生这种情况是因为 MyImage 是直接属性,并且绑定(bind)不搜索直接属性。相反,它会在父级的数据上下文中进行搜索。

我怎样才能避免这种情况?

最佳答案

在这里使用 RelativeSource

<Image Source="{Binding Path=DataContext.MyImage, RelativeSource={RelativeSource FindAncestor,AncestorType=ItemsControl}}" />

这就是您可以在项目模板等中访问父级 DataContext 的方式。


编辑

我只是想到了另一个可能的绑定(bind)问题,好像你在绑定(bind)元素的字典

如果图像路径在键或值之一中,那么也许这就是解决方案

<Image Source="{Binding Path=Key.MyImage}" />

<Image Source="{Binding Path=Value.MyImage}" />

关于wpf - ItemsControl 子属性不获取父级的数据上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25529712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com