в WPF, в моем XAML у меня есть dataGrid, связанный с IEnumerable. Предметы коллекции имеют свойство Sealed. Чтобы знать, если заказ запечатан или нет. Поэтому я сделал конвертер, чтобы переключать его из одного списка в другой. Хотя, когда я изменяю коллекцию извне, конвертер не вызывается. Но если я закрою и снова открою окно, оно будет работать нормально.
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var collection = (ObservableCollection<OrderEntry>)value;
var viewSource = new CollectionViewSource()
{
Source = collection,
};
viewSource.Filter += new FilterEventHandler(FilterInSealedOrderEntries);
return viewSource.View;
}
private static void FilterInSealedOrderEntries(object sender, FilterEventArgs e)
{
var orderEntry = e.Item as OrderEntry;
e.Accepted = orderEntry != null && orderEntry.Sealed;
}
"{Binding Path=OrderEntries.Collection, Converter={StaticResource ViewNotSealedOrderEntryCollectionValueConverter}}
"
В моем Xaml.
Всякий раз, когда я меняю свойство, вызывается collectionContentChanged
, но не конвертер, есть идеи, что я делаю не так?
Спасибо, я прокомментирую, если это не достаточно ясно.