【问题标题】:Binding DataGrid visibility with its own (ItemSource.Count > 0) Silverlight MVVM将 DataGrid 可见性与其自己的 (ItemSource.Count > 0) Silverlight MVVM 绑定
【发布时间】:2015-02-05 18:25:04
【问题描述】:

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

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

【问题讨论】:

    标签: c# wpf silverlight mvvm datagrid


    【解决方案1】:

    首先你需要一个转换器,它会在 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();
        }
    }
    

    那么就可以使用RelativeSource绑定值Self来绑定ItemsSource,

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

    【讨论】:

      猜你喜欢
      • 2011-12-04
      • 2010-12-06
      • 2013-12-17
      • 2010-11-02
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 2018-07-28
      相关资源
      最近更新 更多