Ich ändere den Fortschrittsbalken basierend auf wie viele Elemente in der Liste sind. Der folgende Code funktioniert einwandfrei.UpdateSourceTrigger funktioniert nicht mit Konverter
<Controls:MetroProgressBar Minimum="0" Maximum="2" Value="{Binding ProgressList.Count, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"/>
Aber was ich wirklich brauchen, ist nicht ProgressList.Count
aber ProgressList.Where(x => x.Done).Count()
so änderte ich meine XAML:
<Controls:MetroProgressBar Minimum="0" Maximum="2" Value="{Binding ProgressList, Converter={StaticResource DoneProgressConverter}, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"/>
und einen Konverter:
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();
}
}
Aber es scheint, dass UpdateSourceTrigger=PropertyChanged
doesn‘ t trigger mehr, weil es nur einmal in meinen Konverter kommt (unmittelbar nach dem Ausführen der Anwendung).
'UpdateSourceTrigger' von' Target (Ansicht) arbeitet 'auf' Quelle (VM'). –