Значение текстового поля исчезает - привязка viewmodel к вкладке (управление контентом) - PullRequest
3 голосов
/ 14 мая 2010

Основываясь на примере MVVM Джоша Смита, я реализовал опцию с несколькими вкладками, которая связывает другую вкладку с другой моделью представления. используя простую табличку с данными, которая связывает модель представления с представлением.

 <DataTemplate  DataType="{x:Type fixtureVM:SearchViewModel}">
    <SearchVw:SearchView/>
</DataTemplate>

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я переключаю вкладки, а затем снова переключаюсь обратно, значение в текстовом поле исчезает. Когда я связываю текст в текстовом поле со значением в ViewModel, оно не исчезает. Это хорошо, и я могу преодолеть это, но у меня возникла другая проблема, например, когда положение полосы прокрутки в сетке исчезло, как только вкладка потеряла фокус.

Почему значение исчезает? Я предполагаю, что это задача подсистемы WPF, которая очищает ресурсы !? как я могу избежать этого? Я также чувствую, что это может замедлить мое приложение.

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

Прочтите мой пост здесь о том, почему это происходит. По сути, поскольку вы соединяете View и ViewModel в DataTemplate, вкладка заново создает представление каждый раз, когда получает фокус. И да, это съедает больше ресурсов. Это можно исправить, подключив view и ViewModel по-другому (то есть метод Catelog, WAF или использование элемента управления другого типа также может помочь ...)

0 голосов
/ 21 мая 2010

Вот решение, которое создает подкласс TabControl.

http://eric.burke.name/dotnetmania/2009/04/26/22.09.28

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...