TreeViewItem расширенное событие - PullRequest
0 голосов
/ 09 октября 2018

Здравствуйте, я работаю с приложением WPF, в котором я хочу, чтобы событие вспыхнуло, прежде чем я разверну элемент в TreeView.Я знаю, что для этого события еще нет, но я не уверен, как добавить событие так, как я это делаю, поэтому любая помощь будет оценена.

здесь xaml.

 <TreeView x:Name="TreeView" Margin="20">
        <TreeView.Resources>
              <Style TargetType="{x:Type TreeViewItem}">
                   <!-- Some style -->
              </Style>
              <DataTemplate DataType="{x:Type models:DirectoryPathItem}">
                   <!-- some template -->
              </DataTemplate>
        </TreeView.Resources>
 </TreeView>

Я загружаю в коде позади.

    private void LoadBaseDirectories()
    {
        var directoryInfo = new DirectoryInfo(@"C:\");

        var directories = directoryInfo.GetDirectories();

        foreach (var directory in directories)
        {
            TreeView.Items.Add(new DirectoryPathItem()
            {
                Children = new ObservableCollection<PathItem>(),
                Path = directory.FullName,
                Header = directory.Name
            });
        }
    }

Есть ли способ, которым я могу вызвать событие перед расширением TreeViewItem чтобы я мог загрузить детей?

1 Ответ

0 голосов
/ 09 октября 2018

Загрузка дочерних элементов перед фактическим расширением может привести к не отвечающему пользовательскому интерфейсу, в котором пользователь не понимает, почему список пуст.

Я бы предложил добавить элемент, представляющий фоновую задачу (ig: aзагрузите счетчик) и добавьте нужные элементы, как только они будут обнаружены.

После этого вы можете удалить загружаемый элемент счетчика.

Таким образом, вам не понадобится новое событиеи пользователь поймет, что происходит.

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