すでに述べたようにXAMLでWPFクラスの基本的なユーザーインターフェイスを作成する方法を説明しました。しかし、XAMLがインスタンス化の.NETへの一般的な方法であり、他の非標的WPF名前空間に位置しており、中に自分のスペースを作成するものを含めて、オブジェクト。
過剰のようなXAMLウィンドウが表示され音で使用されていないが、多くの場合にはそれが必要とされているオブジェクトを作成します。一例ではあるが、結合および他のオブジェクトから抽出された情報は、制御上に表示することを希望データを使用します。別の例では、オブジェクトの非WPF WPFオブジェクトセットのプロパティを使用することです。
たとえば、WPFのListBoxコントロールデータオブジェクトを使用して充填することができます。ListBoxコントロールは、リスト内の各エントリに表示するテキストを取得するには、toString()メソッドを呼び出します。
WPF名前空間で定義されたクラスを使用しません。XML名前空間にマッピングされた.NET名前空間が必要です。構文は次のとおりである、特別なXAML構文は、ジョブを完了するために使用することができますがあります。
xmlns:接頭辞= "CLR名前空間:名前空間、アセンブリのAssemblyName ="
通常、ルート要素のXAMLドキュメントは、WPFとXAML名前空間の特性の直後に名前空間宣言を配置します。3つのイタリック体を満たすのに必要な適切な情報は、以下の三つの部分の意味:
- プレフィックスは、XML名前空間接頭辞のための希望がXAMLマークアップで示してあります。たとえば、XAML構文のx接頭辞。
- 名前空間の.NET名前空間名は完全修飾です。
- AssemblyNameは、アセンブリの種類の声明、展開なしの.dllの名前です。アセンブリは、プロジェクトで参照する必要があります。あなたは、プロジェクトのアセンブリを使用する場合は、この部分を無視することができます。
たとえば、次の例は、System名前空間接頭辞マッピングされたSYSの基本的な範囲の種類をマークする方法を示しています。
xmlns:SYS = "CLR名前空間:システム、アセンブリ= mscorlib"
さて、1つのクラスの名前空間のインスタンスを作成するために、名前空間接頭辞を使用することができます。
< SYS:日時> 2019年12月30日12時20分○○秒</ SYS:日時>
XAMLで使用される各クラスには、引数のコンストラクタを持っていないために理想的には、それが望ましいです。引数なしのコンストラクタは、XAMLパーサーは、対応するオブジェクトを作成することができた場合は、そのプロパティを設定して、提供されたイベントハンドラに関連付けられています。XAMLは、引数のコンストラクタがあるサポートしていない、とWPF内のすべての要素は、引数のコンストラクタが含まれていません。また、すべての詳細を期待するパブリックプロパティを使用することができるようにする必要があります。XAMLは、パブリックフィールドやメソッドの呼び出しを設定することができました。
引数なしでクラスのコンストラクタを使用したくない場合は、いくつかの制限があります。単純な基本的なタイプ(例えば、文字列、日付、またはデジタルタイプ)を作成しようとすると、データは、タグの内容の文字列表現として提供することができます。XAMLパーサーは、適切なターゲットに文字列を変換する型コンバータを使用します。上記のコードセグメントに示すように、例えば、日時構造を用いた例です。
日時のTypeConverterがDateTimeConverterクラスの特性に自身を関連付けるために使用されるので、これ以上のマークがばかげてもよいです。DateTimeConverterクラスは、この文字列は、法的なDateTimeオブジェクトで、それらを変換するために知っています。この技術を使用する場合、特性は、オブジェクトの任意のプロパティを設定するために使用することができません。
次の例では、一緒にこれらの概念のすべてを設定します。SYSは、これら3つのDateTimeオブジェクトがリストを埋める使用し、その後、System名前空間にマッピングされた接頭辞、およびSystem名前空間を使用して、3つのDateTimeオブジェクトを作成し、そして:
< ウィンドウ×:クラス= "WpfApplication1.DateTimeWindow" のxmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" のxmlnsを:X = "http://schemas.microsoft.com/winfx/2006 / XAML」 のxmlns:SYS = "CLR名前空間:システム、アセンブリ= mscorlib" タイトル= "DateTimeWindow" 高さ= "300" 幅= "300" > < リストボックス> < ListBoxItem > < SYS:日時> 2019年12月30日12時20分〇 〇秒</ SYS:日時> </ ListBoxItem > < ListBoxItem> < SYS:日時> 2019年12月31日12時20分00秒</ SYS:日時> </ ListBoxItem > < ListBoxItem > < SYS:日時> 2019年12月3日12時20分00秒</ SYS:日時> </ ListBoxItem > </ ListBoxコントロール> </ ウィンドウ] >