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

本文关键字:属性 可见性 绑定 XML 元素 可以使 WPF 是否 | 更新日期: 2023-09-27 18:36:41

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

想象一下 XML 是这样的:

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

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

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

不能直接绑定到 XML,但可以使用某些内容从 XML 创建对象。

LinqToXSD在这里是一个很好的候选者。

它的工作原理是这样的:你创建 Xml 架构,LinqToXSD 基于你的模式创建类,然后你可以读取 XML,它将基于你的 XML 创建整个对象树。

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

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

请务必在资源中声明您的转换器

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

如果你想要一个转换器的好例子,这里是MSDN的IValueConverter http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx