Ваша виртуальная машина не должна содержать какой-либо специфический для пользовательского интерфейса код, такой как элементы управления, если вы беспокоитесь о наилучшей практике.Например, если у вас есть свойство в виртуальной машине, которое контролирует видимость элемента управления в вашем представлении, это свойство должно иметь тип bool, а не видимость.Представление будет использовать свойство bool, чтобы скрыть или показать элемент управления.
Таким образом, у вас есть представление (например, окно), которое связывается с виртуальной машиной.Некоторые изменения свойств в виртуальной машине приводят к тому, что в окне создается некоторый код, который отображает пользовательский элемент управления.