Таким образом, вы можете обрабатывать событие PropertyChanged SimpleClass в UseSimpleClass.
public UseSimpleClass (List<SimpleClass> simpleClassCol)
{
SimpleClassCol = simpleClassCol;
foreach (var item in SimpleClassCol)
{
item.PropertyChanged += HandlePropertyChanged;
}
}
private void HandlePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == "Checked")
{
NotifyPropertyChanged("SimpleClassColCountChecked");
}
}
Для каждого элемента в источнике (simpleClassCol) вы начинаете прослушивать событие PropertyChanged. Может быть, это не так дорого.
Если это будет ListBox (ListView), вы можете использовать коллекцию SelectedItems для достижения такого поведения. Таким образом, вам понадобятся две коллекции - первая будет содержать целые элементы, вторая - выбранные элементы.
EDIT:
Основная часть, которую я забыл - это то, что вы должны указать DataContext вашего MainWindow
![Easy app](https://i.stack.imgur.com/om0xN.png)
так, в коде
public MainWindow()
{
InitializeComponent();
List<SimpleClass> simpleCollection = new List<SimpleClass>();
simpleCollection.Add(new SimpleClass());
simpleCollection.Add(new SimpleClass());
simpleCollection.Add(new SimpleClass());
useSimpleClass = new UseSimpleClass(simpleCollection);
DataContext = useSimpleClass;
}