Проблема с вашим подходом состоит в том, что после того, как вы измените ItemSource (переключившись на следующую страницу), ваш chekcbox все еще будет привязан к элементу первой коллекции. Я думаю, что это происходит потому, что вы явно используете индексатор для привязки Path=Officers[0].IsOnDuty
Ваш список сэмплов xaml не имеет смысла. ItemsSoruce - это OfficerCollection, и ваш ItemTemplate также привязывается к коллекции офицеров. В зависимости от того, что вы пытаетесь выполнить, вы должны выполнить одно из следующих действий:
Если вас просто интересует первый офицер (как показывает ваш пример), добавьте свойство DependencyProperty FirstOfficer
(или INotifyPropertyChanged
) в свою коллекцию и привяжите к нему: IsChecked="{Binding Path=Officers.FirstOfficer, Mode=OneWay}"
Если вас, однако, интересуют все сотрудники и вы хотите установить флажки для всех них, вы должны создать DataTemplate для типа Officer
и использовать его в качестве ItemTemplate.
Как правило, вы можете избежать больших проблем, если будете придерживаться MVVM и действительно адаптировать свои объекты ViewModel очень близко к тому, что нужно View, чтобы вы могли связать View с ViewModel самым простым способом. Представьте, что ViewModel - это представление, которое вы хотите построить, но без визуального представления.