WPF – 将UserControl的可见性绑定到属性

我有一个绑定到ObservableCollection的ListView。 数据从Internet加载,然后添加到集合中。 下载需要几秒钟,我想指示用户数据正在加载。

我创建了一个指示活动的UserControl。 我将它放在ControlTemplate中。

     

我想将ActivityIndicatorControl Visibility绑定到一个属性,让我们说bool IsLoading并相应地将它设置为Visible / Collapsed。

谢谢!

我建议使用IValueConverter接受您的布尔值,并返回Visibility枚举的成员。

以下是一个很好的例子: http : //jeffhandley.com/archive/2008/10/27/binding-converters—visibilityconverter.aspx

XAML看起来像这样:

首先,为转换器定义资源(将其放在资源字典中):

  

然后像这样更改模板:

     

使用.NET内置的Converter

.NET 3有一个内置的BooleanToVisibilityConverter 。

(注意:可能并非在所有平台上都可用,例如:移动设备)

首先将它添加到您的资源中

    

然后在元素上使用它

  

反相

如何反转BooleanToVisibilityConverter?

如果你想反转转换器(例如:当你的属性为真时隐藏元素),这个答案有一个自定义的IValueConverter实现,它通过XAML支持