我有3个元素:
我的UserControlB正在对图像执行任务并声明了DependencyProperty:
public ImageSource Source
{
set { SetValue(SourceProperty, value); }
get { return GetValue(SourceProperty) as ImageSource; }
}
public static DependencyProperty SourceProperty = DependencyProperty.Register("Source", typeof(ImageSource), typeof(UserControlB));
UserControlB中处理的图像绑定到此依赖项:
<Image Source="{Binding Path=Source}" />
在UserControl上使用相对DataContext:
DataContext="{Binding RelativeSource={RelativeSource Self}}"
然后是UserControlA。如果我使用UserControlB并设置Source属性direclty,一切正常。 但是,我的UserControlA还有一个Dependency Property,用于设置ImageSource:
public ImageSource Source
{
get { return GetValue(SourceProperty) as ImageSource; }
set { SetValue(SourceProperty, value); }
}
public static readonly DependencyProperty SourceProperty =
DependencyProperty.Register("Source", typeof(ImageSource), typeof(UserControlA));
它也受到同样的约束:
<my:UserControlB Source="{Binding Path=Source}" />
还有UserControl上的相对DataContext:
DataContext="{Binding RelativeSource={RelativeSource Self}}"
现在在我的MainWindow中,我的UserControlA必须显示我的UserControlB:
<my:UserControlA Source="/Project;component/Images/090607153529_49.jpg" />
问题:它不起作用。
我试图将一个简单的图像绑定到UserControlA中的Source:它可以工作。 我尝试在UserControlA中手动设置UserControlB的源:它可以工作。 我试图告诉UserControlA在属性发生变化时通知:
Source="{Binding Path=Source, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}"
它不起作用。
所以,我不知道下一步该做什么。