EmptyListToVisibilityConverter

Ich versuche für WPF eine "leere Liste in Sichtbarkeit umzuwandeln". Dies ist ein IValueConverter, der ein Objekt (das eine Liste sein sollte) annimmt. Wenn die Liste leer ist (oder wenn das übergebene Objekt null ist), sollte er Visibility.Collapsed zurückgeben. Wenn die Liste nicht leer ist, sollte sie Visibility.Visibile; @ zurückgebe

Ich plane, dies für ein Datagrid zu verwenden. Der Plan ist, das Datagrid immer dann unsichtbar (reduziert) zu machen, wenn die der ItemsSource zugewiesene Liste eine leere Liste oder eine Null ist.

<my:DataGrid 
                    Name="dataGridAuxiliaryTools"
                    Style="{StaticResource DataGridStyle}"
                    CellStyle="{StaticResource DataGridCellStyle}"
                    ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
                    ItemsSource="{Binding Path=Items}"
                    IsReadOnly="False"
                    Visibility="{Binding Path=Items, 
                    Converter={StaticResource emptyListToVisibilityConverter}}"
 </my:DataGrid>

Ich habe den EmptyListToVisibilityConverter wie folgt geschrieben:

public class EmptyListToVisibilityConverter : IValueConverter
    {
    public object Convert(object value, Type targetType, object parameter,
                          CultureInfo culture)
    {
        if (value == null)
        {
            return Visibility.Collapsed;
        }
        else if (value is IList<Object>)
        {
            if ((value as IList<Object>).Count == 0)
            {
                return Visibility.Collapsed;
            }
            else
            {
                return Visibility.Visible;
            }
        }
        else
        {
            return Visibility.Visible;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter,
                              CultureInfo culture)
    {
        throw new NotImplementedException();
    }

Dies funktioniert gut, wenn Items als Null angegeben wird, aber wenn Items als Liste angegeben wird, funktioniert es nicht ... Ich denke, dass der folgende Code nicht korrekt ist und nicht erkennen kann, ob "value" eine Liste ist oder nicht ... Beliebig Hinweise?

if (value is IList<Object>)
            {
                if ((value as IList<Object>).Count == 0)
                {
                    return Visibility.Collapsed;
                }
                else
                {
                    return Visibility.Visible;
                }

Hinweise, wie das geht?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage