简体   繁体   English

将DataGrid可见性与其自身绑定(ItemSource.Count> 0)Silverlight MVVM

[英]Binding DataGrid visibility with its own (ItemSource.Count > 0) Silverlight MVVM

如标题所示,当网格的itemsource有0行时,我想隐藏网格。

<sdk:DataGrid Name="RegionDataGrid" Visibility="{Binding <!-- WHAT_SHOULD_COME_HERE -->}" AutoGenerateColumns="False" VerticalAlignment="Top" IsReadOnly="False" Height="Auto" Width="Auto" >

First you need a converter which will return Collapsed when List is empty. 首先,您需要一个当List为空时将返回Collapsed的转换器。

public class EmptyCollectionConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        ICollection list = (ICollection)value;

        if (list == null)
            return Visibility.Collapsed;

        return list.Count != 0 ? Visibility.Visible : Visibility.Collapsed;
    }

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

Then you can use RelativeSource binding with value Self to bind the ItemsSource, 然后,您可以使用带有值Self的 RelativeSource绑定来绑定ItemsSource,

<sdk:DataGrid Visibility="{Binding ItemsSource, RelativeSource={RelativeSource Self}, Converter={StaticResource EmptyCollectionConverter}}" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM