首页 > 解决方案 > WPF/XAML 转到定义 (F12) 不适用于 ObjectDataProvider

问题描述

ObjectDataProvider 用于获取主窗口的 DataContext:

<Window...>
    <Window.Resources>
       ...

       <ObjectDataProvider ObjectType="{x:Type local:MainWindowVM}"
                           MethodName="Instance"
                           x:Key="MainContext" />
       <ObjectDataProvider ObjectType="{x:Type universalSettings:SettingsVM}"
                           MethodName="Instance"
                           x:Key="SettingsContext" />
    </Window.Resources>

    <Window.DataContext>
        <Binding Source="{StaticResource MainContext}" />
    </Window.DataContext>
    ...

MainWindowVM 是一个单例。一切都很好,在 VS2019 最近更新之前,我可以使用 F12 轻松导航到我的命令和属性。

<Button Command='{Binding ScaleCommand}' />

现在,如果您在“ScaleCommand”上按 F12,VS 将始终指向public class ObjectDataProvider而不是命令或属性。

使用 ReSharper 扩展 F12 在上面的示例中运行良好,但以下仍然让我想到public class ObjectDataProvider

<StackPandel DataContext="{StaticResource SettingsContext}">
    ...
    <Button Command='{Binding RevertSettingsCommand}' />
</StackPanel>

SettingsContext 在不同的程序集中。在那种情况下,没有什么可以帮助我了。我试图重置所有设置,然后重新安装所有内容。没有变化。这只是代码导航问题,程序运行良好。

在一些 VS 更新之前一切正常,即使没有 ReSharper。

寻求帮助,WPF/XAML 已经很难了,失去 F12 导航这样重要的功能真的很痛苦。

标签: wpfxamlresharpervisual-studio-2019

解决方案


推荐阅读