Я не могу понять, как связать мое изображение:Невозможно привязать к DependencyProperty ребенка DependencyObject
<Image Source="{ Binding Path=ViewModel.MainViewModel.ProcessedImage }" Name="image1"/>
к DependencyProperty ProcessedImage, который является дочерним элементом моего пользовательского класса, производного от DependencyObject:
class ViewModel : DependencyObject
{
public static ViewModel MainViewModel { get; set; }
[...]
public BitmapImage ProcessedImage
{
get { return (BitmapImage)this.GetValue(ProcessedImageProperty); }
set { this.SetValue(ProcessedImageProperty, value); }
}
public static readonly DependencyProperty ProcessedImageProperty = DependencyProperty.Register(
"ProcessedImage", typeof(BitmapImage), typeof(ViewModel), new PropertyMetadata());
}
Надеюсь, вы сможете мне помочь. Я пробовал разные подходы, но ничего не работает.
Почему ваша виртуальная машина основана на DependencyObject? Вероятно, вы должны использовать INotifyPropertyChanged и установить DataContext в своем представлении равным вашей модели представления. Затем вы можете просто установить путь к ProcessedImage, который может быть POCO –
. Я выбрал этот подход, потому что мне это казалось более простым. Я бы предпочел сохранить его таким образом, если это возможно, конечно. Невозможно ли привязать дочерние элементы класса DependencyObject? – wpfnoop
Просто потому, что что-то проще, не означает, что это обязательно правильно. Шаблон MVVM предназначен для более легкого обслуживания позже. Если вы собираетесь создавать такие зависимости к пользовательскому интерфейсу, то вы можете также придерживаться кодировки WinForms (вы можете использовать WPF для этого) –