Если вы редактируете проверенное значение из кода, вы должны редактировать источник привязки (IsReady
), а не значение CheckBox.Checked
. Установка MyCheckBox.Checked
перезапишет привязку и не сохранит изменения в свойстве IsReady
.
Желательно изменить свойство IsReady
из вашей ViewModel, но если вы должны сделать это из-за представления, я обычно приводил DataContext CheckBox к моему объекту данных и устанавливал привязанное свойство оттуда
Примерно так:
((MyDataObject)MyCheckBox.DataContext).IsReady = false;
Что касается создания CheckBox только для чтения для пользователя, установите для его свойства IsEnabled
значение false
<CheckBox x:Name="MyCheckBox" IsEnabled="False" IsChecked="{Binding IsReady}" />