gpt4 book ai didi

c# - WPF - 将 UserControl 可见性绑定(bind)到属性

转载 作者:可可西里 更新时间:2023-11-01 07:42:52 24 4
gpt4 key购买 nike

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

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

<ControlTemplate x:Key="ListViewControlTemplate1" TargetType="{x:Type ListView}">
<Grid>
<local:ActivityIndicatorControl
HorizontalAlignment="Center"
Height="Auto"
Margin="0"
VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>

我想将 ActivityIndi​​catorControl 的 Visibility 绑定(bind)到一个属性,比方说 bool IsLoading 并将其相应地设置为 Visible/Collapsed。

谢谢!

最佳答案

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

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

XAML 看起来像这样:

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

<local:BooleanToVisibilityConverter x:Key="myBoolToVisibilityConverter" />

然后像这样更改您的模板:

<ControlTemplate x:Key="ListViewControlTemplate1" TargetType="{x:Type ListView}">
<Grid Visibility="{Binding IsLoading, Converter={StaticResource myBoolToVisibilityConverter}}">
<local:ActivityIndicatorControl
HorizontalAlignment="Center"
Height="Auto"
Margin="0"
VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>

关于c# - WPF - 将 UserControl 可见性绑定(bind)到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10607548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com