У меня есть приложение для трейдинга MVVM.Почему новый вид не создается при создании нового ViewModel
MainView
имеет два элемента управления вкладками - слева отображает коллекцию "workspaces"
, а справа отображает диаграммы отображения динамических данных.
Когда я создаю первый "chartviewmodel"
, правильная диаграмма появится в правой панели управления вкладкой, как и ожидалось. Когда я создаю еще "chartviewmodel"
с разными данными, которые должны привести к другому графику, это не то, что происходит. Второй элемент табуляции является дубликатом первого с визуальной точки зрения. Элементы табуляции содержатся в наборе элементов, называемых: "chartspaces"
, и в режиме отладки я вижу каждую модель и, в свою очередь, имеет разные значения.
Кроме того, в режиме отладки я установил точку останова в методе "Initialize()"
и, когда первый chartviewmodel
создан, этот метод действительно вызван. Когда я создаю второй chartviewmodel
, метод "Initialize()"
не вызывается, поэтому на самом деле другое представление не создается ... но я не могу понять, почему.
My view/viewmodel's связаны между собой через DataTemplate
с x:Shared="False"
(пробовал его с этим параметром и без него). Я проследил конструктор chartviewmodel
, чтобы убедиться, что он не получил никаких ошибок, и это не так.
В левой панели управления вкладками я могу создать несколько tradeviewmodel
, и каждый результат будет выглядеть в другом виде ... другими словами, он ведет себя как ожидалось.
Мой XAML для правильного управления вкладки, по существу, такой же, как для левого с исключением "workspace"
коллекции (слева использует "workspaces"
право использует "chartspaces"
, так что я в недоумении относительно того, что может быть неправильно или как диагностировать эту проблему дальше
DataTemplate выглядит следующим образом:.
<DataTemplate x:Shared="False" DataType="{x:Type vm:ModelOptionChainViewModel}">
<vw:DDDRiskChart />
</DataTemplate>
В дальнейшем экспериментирования, я поставил вкладку элементы на левой стороне, а и нашел такую же проблему, но если я выбрал не-динамические данные Покажите вкладку, затем одну из диаграмм DDD, они отображаются правильно. S o, прежде чем я выбрал диаграмму DDD, мне пришлось отобразить диаграмму, отличную от DDD, а затем диаграмму DDD для ее отображения.
Итак, перемещая элементы табуляции обратно в правую вкладку, я вставляю две диаграммы DDD, а затем кладу в таблицу без DDD (диаграмму DataVisualization). Я нашел такое же поведение ... если бы я выбрал диаграмму без DDD, а затем диаграмму DDD, она отобразится правильно. Если я просто чередую между двумя DDD-диаграммами, они оба будут отображать один и тот же график! Разве это не странно?
Отправьте свой код здесь. –
Имейте в виду, что ViewModel - это концепция, специфичная для приложения, которая не знает о представлениях (т. Е. Отключена). * вы * должны привязать этот ViewModel к вашему представлению вручную/явно. Мы * не можем * знать, если/как вы это делаете; поэтому укажите детали, если вы хотите, чтобы кто-то мог помочь. –
Как вы показываете свой список детей? Модели? В ObservableCollection <>? –