【问题标题】:WPF Data binding issue regarding locator关于定位器的 WPF 数据绑定问题
【发布时间】:2016-01-06 16:41:31
【问题描述】:

这可能是一个愚蠢的问题,但我似乎无法弄清楚问题所在。

我有一个 WPF 项目,我想重命名它并着手进行 mercurial 重构。

总而言之,它似乎做得很好,唯一的问题是我的视图模型的数据上下文似乎搞砸了。

其中一个页面的例子是这样的

<Page x:Class="Cirdan.Excite.Views.ViewerPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:controls="clr-namespace:Cirdan.Excite.Controls"
  xmlns:infrastructure="clr-namespace:Cirdan.Excite.Infrastructure"
  DataContext="{Binding ViewerViewModel, Source={x:Static infrastructure1:MainWindow.LocatorX}}"
  mc:Ignorable="d"
  d:DesignHeight="1024" d:DesignWidth="1280"
  Title="Viewer">

我得到的错误是 LocatorX 既不存在也不可访问。但是我可以访问我的 ViewModel 的源以及我的 LocatorX 的定义位置,以便它知道它们并且 LocatorX 是公开的。

在重命名之前一切正常,所以它以某种方式链接到它

【问题讨论】:

  • 您的 MainWindow 是否仍在 Cirdan.Excite.Infrastructure 命名空间中定义,或者其命名空间已更改?
  • 嗨,命名空间也发生了变化,不过它们都使用相同的命名空间

标签: c# wpf data-binding viewmodellocator


【解决方案1】:

虽然我了解您的问题,但不清楚您的实际要求。

这些是我会做的步骤:

  • 首先进行强力检查。也就是说,查看每个类和 XAML(以及任何代码隐藏)并确保 &lt;name-of-item&gt; 的所有实例都是正确的。还要确保使用的命名空间是正确的。

  • 更正任何错误值后,clean重建您的项目。

  • 如果仍然出现错误,您可以重新启动 Visual Studio(或 WPF 设计器)。

我之前在这里遇到过一些有趣的问题,并且曾经需要验证我的程序集是否也都构建到正确的目标平台。

如果您仍然无法正常工作,请创建一个干净的项目并将您的代码重新合并在一起。

【讨论】:

    猜你喜欢
    • 2011-10-18
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多