即使在运行时Visual Studio无法在WPF窗口中解析静态资源,为什么?

Avr*_*oel 5 wpf resources viewmodel visual-studio

我有一个WPF窗口,正在使用MVVM模式。我将视图模型设置为窗口的资源,如下所示...

<Window
  ...other stuff removed for clarity...
  xmlns:mvvm="clr-namespace:VisionRT.CRM.WPF.ViewModels.VRTSystems"
>
<Window.Resources>
  <mvvm:DhrTemplatesViewModel x:Key="viewmodel" />
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

我想将窗口的数据上下文设置为使用资源,并发现以下XAML可以工作...

  <Window.DataContext>  
    <StaticResource ResourceKey="viewmodel"/> 
  <Window.DataContext> 
Run Code Online (Sandbox Code Playgroud)

问题是我只能通过手动键入XAML来执行此操作,Visual Studio不会在任何地方显示资源。我可以转到窗口的属性,然后单击DataContext属性旁边的小图标,单击“应用资源”选项,但它不会将“ viewmodel”显示为静态或动态资源。如果我手动输入XAML,然后打开“应用资源”弹出窗口,则将“ viewmodel”下划线标为错误,并将鼠标悬停在其上将显示工具提示“无法解析资源引用”

然而,当我运行应用程序,它工作正常,因此资源在运行时得到解决。

任何人都可以解释吗?我真的很希望能够通过VS属性编辑器执行此操作,因为我发现这比手动键入XAM1更方便。VS无法解决这一事实也使我感到困扰。这让我觉得我做错了。

感谢您提供的任何解释。

Edu*_*eni 3

唯一(悲伤的)解释是 XAML 在 Visual Studio 中只是二等公民。一旦你开始推动XAML比基本的多一点,你最终会遇到“未解决”“无法显示”“抱歉我很笨”等等。

请参阅此 WPF 建议:http://dotnet.uservoice.com/forums/40583-wpf-feature-suggestions/suggestions/480899-make-xaml-a-first-class-citizen-of-visual-studio ?ref=标题来修复它们。