2016-10-18 1 views
0

私はXamarinが初めてです。私は新しいXamarin XAML App(Xamarin.Forms Portable)を作成しました。ポータブルプロジェクトでは、デフォルトではMainPage.Xamlです。 MVVMモデルを作成するには、3つの新しいフォルダ-Views, ViewModels, and Modelsを作成しました。今度は、Viewsフォルダに新しいMainPage.Xamlを追加し、デフォルトのMainPage.Xamlページを削除する予定でした。しかしここで私は両方のページのいくつかの違いを参照してください。 MainPage.Xamlのデフォルト値はxmlns:local="clr-namespace:Test"ですが、新しいMainPage.Xamlはありません。再び新しいMainPage.Xamlには<Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />がありますが、デフォルトの値はありません。スクリーンショットは以下のとおりです。 New MainPage.Xaml in Views folderXAMLINフォームのデフォルトのXAMLページと新しいXAMLページは同一ではありません

これらのマークアップを何

Default MainPage.Xaml

がmean.Why違いがあります。何かを変更する必要がありますか?デフォルトのMainPage.Xamlを削除することはできますか?Views.Doesでコピーする必要がありますか?デフォルトのページから新しいページにマークアップをコピーする必要があります。もしそうなら、なぜですか? ありがとうございます。

答えて

0

恐ろしいです。フォーム!

これらの質問がある可能性があるとは思いますが、これは非常に基本的なXAMLの知識です。短い答えは、あなたはそれについて心配する必要はありません。

長い答え:それはちょうどテンプレートと誰Xamarinのためのテンプレートを作成し、誰よりも別人することができたプロジェクトのテンプレートを作成しますので、

これらのページに差があることがその理由は単純です新しいXAMLページ。彼らはそれをさまざまな方法で解決しました。または、彼は良い/悪い日を知っていたかもしれません。

最初のページにあるLabelは、開始方法を示すためのもので、空の画面から開始しません。

余分な名前空間xmlns:local="clr-namespace:Test"は、この新しいページで実際には重複していますが、すでにそこにあるため、プロジェクトでクラスを使用できます。

実際には、クラスの先頭にあるusingリストに相当します。だから、あなたが別の名前空間から何かを必要とするときはいつも、そこに宣言しなければなりません。したがって、 'Controls'フォルダを作成する場合は、属性xmlns:controls="clr-namespace:Test.Controls"を追加できます。

localcontrolsに変更した点に注意してください。これは、インスタンスの定義に使用する接頭辞です。また、正しい名前空間Test.Controlsを追加しました。ReusableControlLabelButtonまたは事実上何の独自のバージョンすることができ

<ContentPage xmlns:controls="clr-namespace:Test.Controls" x:Class="Test.MainPage"> 
    <!-- some stuff here --> 
    <controls:ReusableControlHere /> 
</ContentPage> 

:あなたがしたい場合は今、TEは、次のように行って、コントロールの名前空間から、あなたのXAMLで、画面上に何かを示しています。

+0

よく説明されています!しかし、ラベルテキスト= {バインディングメインテキスト} '。あなたはMainTextが何であるか教えてください。 –

+0

MainTextは、DataContext(あなたのViewModel)のstring型のプロパティである必要があります。 –

3

両方のページが同じで、同じ方法で表示されます。第二に

は、追加のXML名前空間宣言があります:

xmlns:local="clr-namespace:Test" 

それは唯一の宣言です。それを削除したり、効果を持たない別のページに追加することができます。これは、目的は、このように、(この時、C#の名前空間)現在のアセンブリにし、名前空間で宣言されたカスタムビューTestを参照することができるようすることです:あなたはXamarinとXamarinで開始することを決定したことを

<ContentPage 
    ... 
    xmlns:local="clr-namespace:Test" 
    x:Class="Test.MainPage"> 
    <local:MyAwesomeView /> 
</ContentPage> 
関連する問題