У меня есть окно, которое имеет несколько различных DataTemplate
, которые являются нагрузкой на ContentControl
основы на RadioButton
(The RadioButton
посылает команду на видовой, который устанавливает Content
свойства ContentControl
WPF -. MVVM DataTemplate нагрузка на память для повторного использования
Он хорошо работает, но теперь несколько представлений содержат «тяжелый» объект (Eyeshot CAD viewer).
Переключение на любой из этих зрения вызывает задержку (в данный момент нет абсолютно нулевой логики во всем программном обеспечении, кроме зрения/просмотреть модель)
Есть ли способ загрузить представление и тяжелый элемент управления в память один раз, а затем повторно использовать его при переключении на его представление? (The ViewModel
этой точки зрения в настоящее время является синглтон, но это не поможет)
<DockPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Height="160" Margin="0,0,0,12">
... Removed for clarity
</StackPanel>
<ContentControl x:Name="Tabs" Content="{Binding SelectedTabViewModel}" Margin="0,12,0,12"/>
</DockPanel>
Я бы проголосовал за него как дубликат [этого вопроса] (http://stackoverflow.com/q/30033162/1997232), но сам не получаю ответа. То, что я сейчас делаю, ждет первого рендера (который встречается в другом 'ContentControl') перед переключением вида (во время ожидания вы можете показать некоторую анимацию, чтобы развлечь пользователя):' Dispatcher.InvokeAsync (() => ..., DispatcherPriority .Render); '(где' ... 'является частью того, что делает второй' ContentControl' заменяющим первый.). – Sinatr