多くの情報を含む XML がありますが、XML に存在しない限り表示されないはずの情報がいくつかあります。これを手動で実行できることはわかっていますが、良くありません。
次のような xml を想像してください。
<root>
<MandatoryContent />
<OptionalContent />
</root>
ボタンの可視性プロパティを OptionalContent 要素の存在にバインドしたいと考えています。出来ますか?
要素をそれが表すオブジェクトに直接バインドしてから、コンバーターを使用して可視性をVisibility.Visible
nullでない場合に設定できます。
<Label Visibility="{Binding MyObject, Converter={StaticResource NullToVisibilityConverter}} />
必ずリソースでコンバーターを宣言してください
<win:CustomWindow.Resources>
<Converters:NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
</win:CustomWindow.Resources>
また、コンバーターの良い例が必要な場合は、MSDNhttp://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspxのIValueConverterを参照してください。
XMLに直接バインドすることはできませんが、何かを使用してXMLからオブジェクトを作成することはできます。
LinqToXSDはここでの良い候補です。
これは次のように機能します。Xmlスキーマを作成し、LinqToXSDはスキーマに基づいてクラスを作成し、次にXMLを読み取ることができ、XMLに基づいてオブジェクトツリー全体を作成します。