2016-01-06 76 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設計器)。

我以前遇到過一些有趣的問題,一旦需要驗證我的程序集是否都構建到了正確的目標平臺。

如果仍然無法正常工作,請創建一個乾淨的項目並將代碼合併到一起。