繁体   English   中英

是否可以使用WPF将元素的可见性属性绑定到XML?

[英]Is it possible to bind the visibility property of an element to an XML with WPF?

我有一个包含很多信息的XML,但是有些信息除非它存在于xml中,否则不应该显示。 我知道我可以手动执行此操作,但这不是很好。

想象一下这样的xml:

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

我想将按钮的可见性属性绑定到OptionalContent元素的存在。 可能吗?

您可以将元素直接绑定到其表示的对象,然后使用转换器将可见Visibility.Visible设置为Visibility.Visible不为null时)。

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

确保在资源中声明您的转换器

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

如果您想要一个很好的转换器示例,请访问MSDN http://msdn.microsoft.com/zh-cn/library/system.windows.data.ivalueconverter.aspx ,这里是IValueConverter。

您不能直接绑定到XML,但是可以使用某些东西从XML创建对象。

LinqToXSD是一个很好的候选人。

它的工作方式如下:创建Xml Schema,LinqToXSD根据您的模式创建类,然后您可以读取XML,它将基于XML创建整个对象树。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM