Я беспокоюсь о разработке пользовательских / пользовательских элементов управления только тогда, когда у меня есть концепция, которая не вписывается ни в один из обычных элементов управления (редко или никогда), или у меня есть пользовательское поведение элемента управления, которое я хочу использовать повторно (более распространенное).
Чем более абстрактным может быть ваш контроль, тем больше будет возможность его повторного использования.Хотя, делая его настолько абстрактным, что никто не получит никакой выгоды от этого, он будет делать слишком много:)
Если у вас есть логика приложения, лучше всего определить ее в модели представления (или модели), когда ввсе возможно.Когда эта логика изменится, это не нарушит других пользователей вашего элемента управления.
Если функция элемента управления не относится к конкретному стилю представления / ввода пользователя и специфична для этого экземпляра элемента управленияВы, вероятно, должны поместить его в модель представления.
Редактировать:
Из ваших комментариев кажется, что код, который вы пытаетесь написать, зависит от элементов пользовательского интерфейса (TextBlock текстовые декораторы).Это означает, что он должен и должен идти в поле зрения.