正如标题所示,当它的 itemsource 有 0 行时,我想隐藏我的网格。
<sdk:DataGrid Name="RegionDataGrid" Visibility="{Binding <!-- WHAT_SHOULD_COME_HERE -->}" AutoGenerateColumns="False" VerticalAlignment="Top" IsReadOnly="False" Height="Auto" Width="Auto" >
最佳答案
首先你需要一个转换器,它会在 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();
}
}
然后你可以使用相对来源 绑定(bind)值 本人 绑定(bind) ItemsSource,
<sdk:DataGrid Visibility="{Binding ItemsSource, RelativeSource={RelativeSource Self}, Converter={StaticResource EmptyCollectionConverter}}" />
关于c# - 将 DataGrid 可见性与其自己的 (ItemSource.Count > 0) Silverlight MVVM 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27352215/