Несколько вещей для рассмотрения.
1) Сначала используйте ObservableCollection (предпочтительно) или BindingList вместо List в качестве источника данных
2) Убедитесь, что вы внедрили INotifyPropertyChanged в своем классе.См. Пример здесь
3) Теперь, когда вы правильно настроили привязку, переберите коллекцию и установите для свойства selected значение false, используя цикл foreach или другой цикл.Система привязки будет обрабатывать все остальное, и изменения в вашем списке будут должным образом отражены в пользовательском интерфейсе
ОБНОВЛЕНИЕ: Добавлен краткий пример кода
В вашем коде позади:
ObservableCollection<uu> list = new ObservableCollection<uu>();
MainWindow()
{
InitializeComponent();
// Set the listbox's ItemsSource to your new ObservableCollection
ListBox.ItemsSource = list;
}
public void SetAllFalse()
{
foreach (uu item in this.list)
{
item.Ck = false;
}
}
Реализация INotifyPropertyChanged в классе uu:
public class uu: INotifyPropertyChanged
{
private bool _ck;
public bool Ck
{
get { return _ck; }
set
{
_ck = value;
this.NotifyPropertyChanged("Ck");
}
}
private void NotifyPropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}