Use a value converter.
Something like this should work:
XAML:
SelectedItemsOverride="{Binding SelectedNames,
Converter={StaticResource SelectedNamesConverter}},
ConverterParameter={Binding Names}}"
WITH#:
public class SelectedNamesConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((List<string>)value.length() == 0):
return "Please select";
if (((List<string>)value).length() == ((List<string>)parameter).length())
return "All people";
return "Specific selection";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}
And make the names dependent:
public static DependencyProperty NamesProperty = DependencyProperty.Register(
"Names",
typeof(ObservableCollection<People>),
typeof(MainWindow));
public ObservableCollection<People> Names
{
get { return (ObservableCollection)GetValue(NamesProperty); }
private set { SetValue(NamesProperty, value); }
}
MainWindow DependencyObject:
public class MainWindow : DependencyObject