Я изменяю индикатор выполнения в зависимости от количества элементов в списке. Ниже код работает нормально.UpdateSourceTrigger не работает с конвертером
<Controls:MetroProgressBar Minimum="0" Maximum="2" Value="{Binding ProgressList.Count, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"/>
Но что мне действительно нужно не ProgressList.Count
но ProgressList.Where(x => x.Done).Count()
поэтому я изменил мой XAML, чтобы:
<Controls:MetroProgressBar Minimum="0" Maximum="2" Value="{Binding ProgressList, Converter={StaticResource DoneProgressConverter}, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"/>
и сделал конвертер:
public class DoneProgressConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((ObservableCollection<SetupProgress>)value).Where(x => x.Done).Count();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Но мне кажется, что UpdateSourceTrigger=PropertyChanged
Безразлично» t, потому что он входит в мой конвертер только один раз (сразу после запуска приложения).
'UpdateSourceTrigger' работает из' Target (View) '' To Source (VM'). –