У меня есть 3 элемента:
- My MainWindow
- UserControlA, содержащий UserControlB
- UserControlB, содержащийся в UserControlA
Мой 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}" />
При относительном DataContext наUserControl:
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Затем идет UserControlA.Если я использую UserControlB и устанавливаю свойство Source direclty, все работает нормально.Но у моего UserControlA также есть Свойство Зависимости, которое устанавливает 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}" />
С также относительным DataContext в UserControl:
DataContext="{Binding RelativeSource={RelativeSource Self}}"
А теперь в моем MainWindow есть мой UserControlA, который должен отображать мой UserControlB:
<my:UserControlA Source="/Project;component/Images/090607153529_49.jpg" />
Проблема: она не работает.
Я попытался поместить простое изображение, привязанное к Source, в UserControlA: оно работает.Я попытался установить источник UserControlB вручную в UserControlA: он работает.Я пытался сказать UserControlA, чтобы он уведомлял об изменении свойства:
Source="{Binding Path=Source, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}"
оно не работает.
Итак, я не знаю, что делать дальше.