C# 未在设计时出现的绑定图像

C# 未在设计时出现的绑定图像,c#,wpf,visual-studio,xaml,visual-studio-2017,C#,Wpf,Visual Studio,Xaml,Visual Studio 2017,在WPF控件中使用示例图像进行测试 图像路径是/Assets/Samples/dog.jpg 当我在源属性中输入图像路径时,它可以正常工作(无论是在设计还是运行时): 但是,当我将图像路径移动到ViewModel中时,由于某些原因,它仅在运行时工作 public string Image { get; set; } public MyControlViewModel() { Image = "/Assets/Samples/dog.jpg"; } 我确实将映像构建操作更改为资

在WPF控件中使用示例图像进行测试

图像路径是
/Assets/Samples/dog.jpg

当我在源属性中输入图像路径时,它可以正常工作(无论是在设计还是运行时):

但是,当我将图像路径移动到ViewModel中时,由于某些原因,它仅在运行时工作

public string Image { get; set; }

public MyControlViewModel() {
     Image = "/Assets/Samples/dog.jpg";
}


我确实将映像构建操作更改为
资源
,但没有任何结果

还尝试使用资源URI路径(
pack://application:,,,/Assets/Samples/dog.jpg
)-也没有任何结果


  • 这是预期的行为吗
  • 为什么会发生这种情况?我怎样才能让它在设计时工作呢

在设计期间,是否将ViewModel(显式)绑定到视图的DataContext

  • 如果是,那么设计师应该展示它。如果不是,请重新构建整个项目/解决方案

  • 如果不是,那么它很可能不会在设计时显示,因为DataContext是未知的。其中一种解决方案是仅为了设计而绑定它:

例如:

xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
xmlns:vm="clr-namespace:MyApp.ViewModels"    
mc:Ignorable="d"
d:DataContext="{d:DesignInstance {x:Type vm:MyControlViewModel},IsDesignTimeCreatable=True}"

我已经尝试使用资源包URI。结果与我问题中的路径相同,这就是为什么我认为这无关紧要。我已经把它放回去了,但在设计阶段仍然没有显示任何内容。DataContext很好,因为我在该控件中绑定了一些其他东西,图像是唯一的问题。对不起,我读得太快,混淆了运行时和设计时。大多数时候,问题是:为什么我的图像出现在设计时,而不是运行时。