我有一個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