我已经在论坛中搜索了这个问题的解决方案。有几个类似的问题和解决方案,但我无法真正理解它们。请原谅我再次问...:P
让我解释一下我的设置...我有一个 UserControl,它是作为与主应用程序分开的 dll 开发的。在这个相当复杂的 UserControl 中,我有几个子控件。其中之一是图像。我在 UserControl 代码隐藏处声明了一个 DependencyProperty,以公开 Image 的 Source 属性。
public static DependencyProperty MyImageSourceProperty = DependencyProperty.Register("MyImageSource", typeof(ImageSource), typeof(MyUserControl), new UIPropertyMetadata(null));
public ImageSource MyImageSource
{
get { return (ImageSource)GetValue(MyImageSourceProperty); }
set { SetValue(MyImageSourceProperty, value); }
}
然后在我的主应用程序中,我将 UserControl 放在我的 MainWindow 中并将其装配起来......
<controls:MyUserControl Name="MyControl" MyImageSource={Binding MySource}/>
MySource 在我的 MainWindow 的 ViewModel 中声明。
public string MySource
{
get { return this.mySource; }
set { if (value == mySource)
return;
this.mySource = value;
OnPropertyChanged("MySource");
}
}
基本上,该程序应该这样运行: 1) 用户单击主窗口中的按钮。2)一个openFileDialog弹出,他选择一个图像文件加载。3) 一旦他确认选择,图像应该加载到 MyUserControl 的图像控件中。即 MySource 已更新,这会触发一连串事件,从而导致 Image 的 Source 属性被更新。
编译没有错误。但是当我尝试执行程序并选择我要加载的图像时,图像根本不显示......
希望有人能启发我。真的在墙上撞了好几个小时,试图弄清楚出了什么问题......提前非常感谢......