10

Visual Studio 2010でC#を使用して、WindowsPhoneアプリに設定したい設定は次のとおりです。

**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」は保存可能な設定のdeclaration / get-Setメソッドを含む名前空間です)に移動しますが、同じ理由で、メインページに配置しようとしましたが、xmlns:localの宣言は1つしか実行できません。 。いくつか並べてみましたが、うまくいきません。これが、以下にリストする2つのエラーの鍵です。

たとえば、メインページの一部の要素には次のようなものがあります。

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

「息子」は付属物件です

さて、私はさまざまなことを試しましたが、うまくいきませんでした。私が得ることができた最高のものは、AppSettingsのインスタンスを作成できなかったMainPage.xamlでした。今は違います。2つのエラーがあります。

-タイプlocal:AppSettingsが見つかりませんでした

-タグAppSettingsがxml名前空間PhoneApp.MyNamespaceに存在しません。

これは私が入れなかったからだと思います

 xmlns:local="clr-namespace:PhoneApp"

しかし、私はすでに持っています

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

両方を入れることはできません。(そして私にとっては、一方が他方に含まれています...)私がすべてのインとアウトをリストした理由は、これを乗り越えた後、他のトラブルが予想されるからです。このメッセージが誰かが私を助けてくれるほど明確であることを願っています。時間をかけすぎて頭がおかしくなったので、ばかげた間違いがないことを願っています。もちろん、必要な情報を追加することもできます。とにかく読んでくれてありがとう!

4

3 に答える 3

13

これらはXML名前空間マッピングです。次のように:

xmlns:local="clr-namespace:PhoneApp"

local部分はXML名前空間でありPhoneApp、.NETコードからの名前空間です。この定義を設定すると、次のようにXMLでこの名前空間からクラスを参照できます。

<local:MyClassInPhoneAppNamespace/>

localパーツは単なる名前なので、好きなように変更できます。

xmlns:fish="clr-namespace:PhoneApp"

そして、次のように使用します。

<fish:MyClassInPhoneAppNamespace/>

これは、衝突がなくなったことを意味するはずです。

于 2013-02-18T07:34:16.227 に答える
7

この場合の「ローカル」は、参照している名前空間のわかりやすい名前です。それは完全に交換可能です。

于 2013-02-18T07:07:12.303 に答える
1

以下のように同じファイルに2つのローカルをインポートする必要がありました

xmlns:local="clr-namespace:Generique.Views.Assets.Entries"
xmlns:local="clr-namespace:Generique.Views.Assets"

名前を変更するだけで問題なく動作します

xmlns:local="clr-namespace:Generique.Views.Assets.Entries"
xmlns:footer="clr-namespace:Generique.Views.Assets"
于 2019-04-24T08:52:10.410 に答える