Как улучшить производительность переключения динамических представлений WPF? - PullRequest
0 голосов
/ 29 марта 2019

Цель: повышение производительности динамического просмотра.

Элементы управления: a ListBox в качестве выбора меню и ContentControl в качестве заполнителя представления.

Listbox.SelectedItem содержит ViewModel длякаждый вид.Каждое представление создается ViewModel - DataTemplate.Представления представляют собой пользовательскую форму ввода с несколькими TextBox и Grid.

В следующем ListBoxItem имеется EventTrigger для Selected события для запуска MenuClickCommand команды, которая здесь не показана для краткости.

<ListBox>
    <ListBoxItem IsSelected="True" Content="Profile">
    <ListBoxItem Content="Access">
    <ListBoxItem Content="Address">
    <ListBoxItem Content="Contact">
</ListBox>

<ContentControl Content="{Binding SelectedChild}"/>
class TransViewModel : BaseTransViewModel
{
    public TransViewModel(TransModel model, IMainWindow mainWindowViewModel) :
        base(model, mainWindowViewModel)
    {
        public BaseViewModel SelectedChild
        {
            get { return GetProperty(() => SelectedChild); }
            set { SetProperty(() => SelectedChild, value); }
        }

        [Command]
        public void MenuClick(UserDetail userDetail)
        {
            if (SelectedChild != null)
            {
                SelectedChild.Dispose();
                SelectedChild = null;
            }

            if (DetailChildren.ContainsKey(userDetail))
                SelectedChild = DetailChildren[userDetail];
        }
    }
}

Текущий подход к изменению SelectedChild имеет лаги (около 1 с), что плохо, потому что каждый вид не переполнен или не богат анимацией.Как улучшить производительность переключения динамического просмотра?

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