显示ItemsControl.ItemsSource是否为null
问候,
我有一个ItemsControl,我更改了模板,为绑定的ItemsSource中的每个对象显示一个RadioButton。
但是ItemsSource可以为空,当它为空时我想显示默认值。 像“绑定列表中没有可供您选择的项目”……
我想到的一种方法是将ItemsControl.Visibility设置为Collapsed,并将TextBlock.Vsibility设置为Visible,显示文本..但这将包含更多数据。
如果ItemsControl.ItemsSource为null,是否可以显示默认值?
如果我理解正确,我认为您可以通过创建IValueConverter
来解决您的问题。
创建这个简单的转换器后:
public class AnyItemsToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var collection = value as IEnumerable; if (collection == null) return Visibility.Collapsed; return collection.OfType
您可以使用RelativeSource Binding覆盖ItemsControl模板以支持它。
您不应该创建一个转换器,它显示您的列表是否为空。 当您的XAML,转换器和数据源是完全独立的项目时,它会更好。 关于松耦合的MVVM不是吗?
好吧,背后的代码是邪恶的。 感谢您指出了这一点。 我更正了源代码,它现在完全是声明式的:
您可以做的一件事是,在检查ItemsControl.ItemsSource
为空之后,您可以添加单个项目"The binded list contains no items for you to select"
。 我希望这能满足你的目的。