不工作 Count to Visibility

Not working Count to Visibility

我需要在 Count > 0 时显示网格,否则折叠它。

<Grid HorizontalAlignment="Left"
                    Visibility="{Binding Num.Count, Converter={StaticResource IntToVisibleConverter}}">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Image Source="Image.jpg"
                        Height="{Binding ActualHeight, ElementName=TextBlock, UpdateSourceTrigger=PropertyChanged}"
                        Grid.Column="0"/>
                    <TextBlock x:Name="TextBlock"
                        Grid.Column="1"
                        Text="{Binding Num, Converter={StaticResource NumStrConverter}}"/>
                </Grid>

我用这个转换器

class IntToVisibleConverter:IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        int val = (int) value;
        if (val == 0)
            return Visibility.Collapsed;
        return Visibility.Visible;
    }
...
}

public IEnumerable<string> Num{ get; set;}

图像显示 image.jpg 当计数==0

因为你的 NumIEnumerable<string>,当你写 Num.Count 时,你实际上指的是 Count 扩展方法。 WPF 中的绑定与属性一起使用,因此不会起作用。如果您查看调试输出,您应该会收到绑定错误。

因此,您需要确保绑定到 属性,而不是方法。像默认提及一样,切换到 ObservableCollection<T> 或类似的东西,它们都会给你一个 Count 属性,并在集合更改时更新通知。