【发布时间】:2013-02-02 11:03:47
【问题描述】:
这是我希望在 Visual Studio 2010 中使用 c# 为我的 Windows Phone 应用程序进行的设置:
**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) 相同的 NameSpace,然后是一个名为 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”是包含可保存设置的声明/get-Set 方法的命名空间)但是,出于同样的原因,我尝试将它放在主页上,但只有一个 xmlns:local 声明可以做到。我尝试了几件事将它们一个接一个地放置,但它不起作用。这是我将在下面列出的两个错误的关键。
主页的某些元素有这个,例如:
local:MyClass.Son="{Binding Source={StaticResource appSettings}, Path=son1, Mode=TwoWay}" Style="{StaticResource pad}"
“儿子”是附属物
好的,所以我尝试了不同的不同方法,但始终没有奏效。我能得到的最好的结果是在 MainPage.xaml 中它无法创建 AppSettings 的实例。现在不同了,我有两个错误。
-本地类型:找不到AppSettings
-xml命名空间PhoneApp.MyNamespace中不存在标签AppSettings。
我想这是因为我没有放
xmlns:local="clr-namespace:PhoneApp"
但我已经有了
xmlns:local="clr-namespace:PhoneApp.MyNamespace"
并且不能两者兼而有之。(对我来说,一个包含在另一个中......)我列出所有情况的原因是因为我有点期待在我解决这个问题后会遇到其他麻烦. 我希望这个信息足够清楚,有人可以帮助我。我花了这么多时间,我开始失去理智,所以我希望没有愚蠢的错误。当然,我可以添加任何需要的信息。无论如何感谢您的阅读!
【问题讨论】:
标签: c# silverlight windows-phone-7 settings xml-namespaces