0

多くの情報を含む XML がありますが、XML に存在しない限り表示されないはずの情報がいくつかあります。これを手動で実行できることはわかっていますが、良くありません。

次のような xml を想像してください。

<root>
    <MandatoryContent />
    <OptionalContent />
</root>

ボタンの可視性プロパティを OptionalContent 要素の存在にバインドしたいと考えています。出来ますか?

4

2 に答える 2

0

要素をそれが表すオブジェクトに直接バインドしてから、コンバーターを使用して可視性をVisibility.Visiblenullでない場合に設定できます。

 <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を参照してください。

于 2012-06-07T21:10:50.467 に答える
0

XMLに直接バインドすることはできませんが、何かを使用してXMLからオブジェクトを作成することはできます。

LinqToXSDはここでの良い候補です。

これは次のように機能します。Xmlスキーマを作成し、LinqToXSDはスキーマに基づいてクラスを作成し、次にXMLを読み取ることができ、XMLに基づいてオブジェクトツリー全体を作成します。

于 2012-06-07T21:11:58.357 に答える