我有一个名为MyUser的课程。它包含一个公共财产" Image"如下
private ImageSource _Image;
public ImageSource Image
{
get { return _Image; }
set
{
if (value != _Image)
{
_Image = value;
OnPropertyChanged("Image");
}
}
}
我有一个WPF UserControl,其中包含一个setter,用于填充该用户图像的路径。 (用户是ViewModel中的MyUser对象)
<Setter Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="{Binding Path=User.Image}"
Stretch="UniformToFill" />
</Setter.Value>
</Setter>
我在运行时遇到错误(不是例外)
System.Windows.Data错误:2:找不到目标元素的管理FrameworkElement或FrameworkContentElement。 BindingExpression:路径= User.Image;的DataItem = NULL;目标元素是&#39; ImageBrush&#39; (的HashCode = 21084988);目标属性是&#39; ImageSource&#39; (键入&#39; ImageSource&#39;)
图像显示完美。为什么我收到此错误?这是我应该关注的事情吗?
感谢您的帮助! 沫
答案 0 :(得分:1)
请阅读similar error message的答案。微软表示它是WPF中的一个小错误,但不值得被关注,因为它不会影响运行时行为。
答案 1 :(得分:0)
我收到类似的消息后。我的问题是,WPF无法确定一个 FrameworkElement
来继承DataContext
,它属于Visual或逻辑树。我将其解释为假定FrameworkElement
中的第一个VisualTree
。所以我认为这个消息应该是这种行为的暗示。
在这些术语中,您应该检查您的容器或用户控件或您使用的是否属于可视/逻辑树。
否则,您可以尝试通过ElementName=...
或RelativeSource={RelativeSource FindAncestor, AncestorType=...}
明确指定DataContext。
但你有没有试过诊断这个绑定?使用命名空间xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"
并将, diag:PresentationTraceSources.TraceLevel=High
添加到绑定中,您应该能够确定那里发生了什么。