2013-02-18 182 views
4

這是我想對我的Windows Phone應用程序的安裝,使用C#在Visual Studio 2010:我需要兩個xmlns:local =「clr-namespace」嗎?

**MainPage.xaml**包含有一個附加屬性,其值將修改/可保存用戶的元素。

**MainPage.xaml.cs**  

第一個命名空間是PhoneApp,它內部是一個名爲MyNamespace的嵌套命名空間,它聲明瞭依賴項屬性。它的工作原理(謝謝,丹尼爾)

**SettingsSample.xaml**這將允許用戶更改任何元素MainPage.xaml附屬性的值,並自動保存更改。

**AppSettings.cs**恰好再現本教程中的第一個上市的一類: http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff769510%28v=vs.105%29.aspx

該頁面聲明相同的命名空間MainPage.xaml.cs中(PhoneApp),然後叫的AppSettings公共類,它是完全一樣在教程中。

要加入都在一起,我所做的:

**MainPage.xaml** 

xmlns:local="clr-namespace:PhoneApp.MyNamespace" 

我需要這種使用附加屬性

<phone:PhoneApplicationPage.Resources> 
    <local:AppSettings x:Key="appSettings"></local:AppSettings> 
</phone:PhoneApplicationPage.Resources> 

混亂開始。在教程中,他們把它放在設置頁面上,但我猜是因爲他們的設置頁面也是包含綁定到保存設置的屬性的元素的頁面。礦在主頁上,所以我把它放在這裏。回顧一下,我的設置頁面將只使用方法來更改/保存這些值(並且這些方法在AppSettings.cs中)。此外,在本教程中,他們這個附加:

xmlns:local="clr-namespace:SettingsSample" 

到設置頁面(其中「SettingsSample」是包含聲明命名空間/獲取集的可保存設置方法),但是,出於同樣的原因,我試圖把它在主頁上,但只有一個xmlns:local聲明可以完成。我嘗試了幾個讓他們一個接一個的東西,但它不起作用。這是我將在下面列出的兩個錯誤的關鍵。

炫魅的一些要素都這樣了,對於爲例:

local:MyClass.Son="{Binding Source={StaticResource appSettings}, Path=son1, Mode=TwoWay}" Style="{StaticResource pad}" 

「兒子」是附加屬性

好了,我嘗試不同的不同的東西,但它從來沒有工作過。我能得到的最好是在MainPage.xaml中,它無法創建AppSettings的一個實例。現在不同了,我有兩個錯誤。

-the類型的本地:AppSettings的未找到

-the標籤的AppSettings在XML命名空間PhoneApp.MyNamespace不存在。

我想這是因爲我沒有把

xmlns:local="clr-namespace:PhoneApp" 

但我已經有

xmlns:local="clr-namespace:PhoneApp.MyNamespace" 

,不能把兩者。(和我,一個包含在其他......)我列出所有情況和出於情況的原因是因爲我經歷了這種情況後期待其他麻煩。 我希望這個信息足夠清晰,有人可以幫助我。我花了很多時間在這件事上,所以我開始放鬆自己的想法,所以我希望沒有一個愚蠢的錯誤。當然,我可以添加任何所需的信息。無論如何謝謝您的閱讀!

回答

1

在這種情況下,「local」只是您引用的命名空間的友好名稱。它完全可以互換。

9

這些是XML名稱空間映射。用下面的:

xmlns:local="clr-namespace:PhoneApp" 

local部分是XML命名空間,而PhoneApp是從你的.NET代碼的命名空間。按照這個定義的地方,你可以從這個命名空間中的XML,然後引用類,如下所示:

<local:MyClassInPhoneAppNamespace/> 

因爲local部分僅是一個名稱,你可以改變它,無論你喜歡:

xmlns:fish="clr-namespace:PhoneApp" 

並使用如下:

<fish:MyClassInPhoneAppNamespace/> 

這應該意味着你不再有碰撞。

+1

TriggerPin和ColinE,謝謝。我不知道。令我驚訝的是,它現在起作用了。我將檢查TriggerPin的帖子作爲答案,並將在我的應用程序中留下「魚」一詞作爲ColinE的致敬! – 2013-02-18 11:50:52

+2

謝謝,我不能要求更好的貢獻! – ColinE 2013-02-18 15:46:12