2016-01-06 39 views
0

这可能是一个愚蠢的问题,但我似乎无法弄清楚问题所在。WPF关于定位器的数据绑定问题

我有一个WPF项目,我想重命名它,并去做mercurial重构。

总而言之,它似乎做得很好唯一的问题是我的viewmodel datacontext似乎被搞砸了。

的一个页面的一个例子是,像这样

<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是公开的。

这是重命名前的所有工作正常,所以它链接到它在某种程度上

+0

您的MainWindow仍在Cirdan.Excite.Infrastructure命名空间中定义或其名称空间已更改? –

+0

嗨,名称空间也发生了变化,它们都使用相同的名称空间 –

回答

0

虽然我理解你的问题,但目前还不清楚是什么你实际上问。

这些步骤,我会做:

  • 首先做了蛮力检查。也就是说,查看每个类和XAML(以及任何代码隐藏)并确保<name-of-item>的所有实例都是正确的。还要确保使用的名称空间是正确的。

  • 纠正任何错误的价值观,然后干净后重建项目(S)。

  • 如果它仍然给你一个错误,你可以重新启动Visual Studio(或WPF设计器)。

我以前遇到过一些有趣的问题,一旦需要验证我的程序集是否都构建到了正确的目标平台。

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