我有一个ObservableCollection<MyEntity>
和MyEntity
有一个IsChecked
财产与PropertyChanged
事件。 我有一个Button
和我想IsEnabled
属性更改为true
至少MyEntity
的MyObservableCollection
被检查。 我创建了一个转换器,该转换器采用ObservableCollection
,并且至少检查到MyEntity
时返回true。 但是返回return "null"
。 有什么不对?感谢您的帮助。WPF - 按钮IsEnabled绑定转换器
XAML
<Window.Resources>
<CollectionViewSource x:Key="MyObservableCollection"/>
<src:MyConverter x:Key="MyConverter"/>
</Window.Resources>
<Button IsEnabled="{Binding Converter={StaticResource MyConverter}, Source={StaticResource MyObservableCollection}}"/>
C#转换
class MyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (null == value)
return "null";
ReadOnlyObservableCollection<object> items = (ReadOnlyObservableCollection<object>)value;
List<MyEntity> myEntities = (from i in items select (MyEntity)i).ToList();
foreach (MyEntity entity in myEntities)
{
if (entity.IsChecked)
{
return true;
}
}
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new System.NotImplementedException();
}
}
在哪里添加数据到这个集合MyObservableCollection? – 2012-08-14 17:48:26
“value”对象是否为空?如果是这样,你的源代码只是null,你在哪里实际填充你的'CollectionViewSource'? – Damascus 2012-08-14 17:49:50
'CollectionViewSource'填充在'Window'' Constructor'中,并显示在'DataGrid'中,效果很好。 – Anthony 2012-08-14 17:58:18