У меня есть ListView
с различной DataTemplate
s, созданной для привязки. Я хочу, чтобы обновить некоторые из столбцов (смесь из TextBlock и прогресс бар), когда я звоню UpdateSource()
на BindingExpression. Я также хочу обновить 1 столбцов при изменении свойства, которыми она связана тоже.
Я был в состоянии получить PropertyChanged
поведение на работе. Но всякий раз, когда я изменить свойство одного из других столбцов они обновляются прямо ОЖИДАНИЕ, а не на UpdateSource
вызова. Казалось бы, что его игнорирование UpdateSourceTrigger
, который установлен в XAML и используется поведение по умолчанию.
У меня есть класс, который реализует интерфейс INotifyPropertyChanged
.
XAML для столбца Я хочу, чтобы обновить явно выглядит следующим образом:
<GridViewColumn Width="300" Header="Percentage" DisplayMemberBinding="{Binding Percentage, UpdateSourceTrigger=Explicit}" />
И XAML для одного, который я хочу, чтобы обновить на изменение свойства:
<GridViewColumn Header="Status" Width="150" DisplayMemberBinding="{Binding Status, UpdateSourceTrigger=PropertyChanged}" />
Мои привязки устанавливается первоначально следующим образом:
Binding downloadBinding = new Binding();
downloadBinding.Source = _downloads;
ListDownloads.SetBinding(ListView.ItemsSourceProperty, downloadBinding);
Если я выполнить следующий код:
_downloads[0].Percentage += 0.3;
_downloads[0].FileSize = 700.00;
_downloads[1].Percentage += 10;
Процент колонка колонка обновляется сразу, но я ожидал бы ждать вызова на UpdateSource ().
Мой код для обновления источника является:
BindingExpression be = ListDownloads.GetBindingExpression(ListView.ItemsSourceProperty);
be.UpdateSource();
Я что-то упускаю? Я ничего не могу найти в Интернете или в книге о том, почему это происходит.
Ваше здоровье