2012-06-07 51 views
0

我有一個XML包含大量的信息,但有一些信息不應該顯示,除非它存在於xml中。我知道我可以手動做到這一點,但這並不好。是否可以使用WPF將元素的visibility屬性綁定到XML?

想象中的XML是這樣的:

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

我想一個按鈕的可見性屬性綁定到OptionalContent元素的存在。可能嗎?

+1

您可以使用轉換器將bool綁定到可見性,如果這就是您要求的 –

回答

0

不能直接綁定到XML,但您可以使用某些東西來從XML創建對象。

LinqToXSD是一個很好的人選。

它的工作原理是這樣的:您創建Xml架構,LinqToXSD根據您的架構創建類,然後您可以讀取XML並根據您的XML創建整個對象樹。

0

您可以將元素直接綁定到它所表示的對象,然後使用轉換器將可見性設置爲Visibility.Visible,如果不爲空。

<Label Visibility="{Binding MyObject, Converter={StaticResource NullToVisibilityConverter}} /> 

一定要聲明你的轉換器在ressources

<win:CustomWindow.Resources> 
    <Converters:NullToVisibilityConverter x:Key="NullToVisibilityConverter" /> 
</win:CustomWindow.Resources> 

如果你想轉換的一個很好的例子,這裏的IValueConverter從MSDN http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx

相關問題