Вы, вероятно, связываете список (IEnumerable) объектов данных с вашей сеткой. Чтобы сохранить его красивым и чистым, вам нужно обернуть каждый из этих объектов данных другим объектом, назовем его RowViewModel . Затем этот RowViewModel может содержать дополнительные свойства, например, логическое значение, к которому можно привязать свойство IsEnabled вашего флажка, причем это логическое значение можно рассчитать из состояния объекта данных или даже из состояния модели родительского представления, если вы передадите ссылку на это к RowViewModel.
Вы также можете немного расширить это, чтобы элементы контекстного меню для каждой строки управлялись каждым RowViewModel и т. Д. Использование RowViewModel таким образом гарантирует, что вы сохраняете свой объект данных красивым и чистым, вы не загрязняете его какими-либо вещами это не нужно.