Я читал о моделях представления и не думаю, что это требуется для моего простого приложения.
Вы почти наверняка ошибаетесь здесь.
На самом деле, то, что вы пытаетесь сделать здесь, довольно просто, если вы используете модель представления: вместо кодирования взаимосвязей между элементами управления вы создаете коллекцию объектов модели представления, которая является ItemsSource
обоих элемент управления вкладкой и список.
Если вы хотите, чтобы двойной щелчок мышью на элементе в вашем списке списка делал что-то, что влияет на то, что появляется в элементе управления вкладками, реализуйте команду в модели представления и дважды щелкните по элементу, чтобы выполнить команду. Команда выполняется, она вносит любые изменения, которые она вносит в модель представления, изменяющиеся свойства вызывают их события, и изменяется отображение в элементе управления вкладки.
Это не только то, для чего вы можете написать модульные тесты (это еще один предмет), но и разделение поля списка и элемента управления вкладками друг от друга. Например, вы можете решить заменить элемент управления вкладкой каким-либо другим видом элементов управления (например, Telerik RadPanelBar
) и вообще не менять код. Вы можете сделать это, потому что модель представления является логической моделью представления, которая изолирована от любых деталей реализации представления.
Не бойтесь просмотра моделей. Они действительно не сложны. Немного раздражает необходимость реализации уведомлений об изменении свойств, но в конечном итоге это очень небольшая цена за непротиворечивое, простое и гибкое программное обеспечение.