Получить выбранные узлы из дерева просмотра UWP - PullRequest
0 голосов
/ 30 января 2020

Я занимаюсь разработкой приложения UWP и пытаюсь установить флажки в виде дерева. Мне нужно знать, на каких узлах установлены флажки.

Я пытался использовать

mytreeview.SelectedNodes 

, но он всегда возвращает ноль. Это мой древовидный Я также пытался использовать

<TreeViewItem IsSelected="{x:Bind IsSelected ,Mode=TwoWay}" ...>

и в page.cs

public bool IsSelected { get; set; } = false;

, но когда я отмечаю флажок, он все еще ложен

1 Ответ

0 голосов
/ 31 января 2020

Получить выбранные узлы из древовидной структуры UWP

Пожалуйста, проверьте этот случай replay , TreeViewItem содержит свойство IsSelected, мы можем создать класс модели с IsSelected свойство и связать его. После выбора элемента значение IsSelected будет изменено, чтобы вы могли foreach источник данных, а затем получить выбранный элемент.

public class ExplorerItem : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    public enum ExplorerItemType { Folder, File };
    public String Name { get; set; }
    public ExplorerItemType Type { get; set; }
    private ObservableCollection<ExplorerItem> m_children;
    public ObservableCollection<ExplorerItem> Children
    {
        get
        {
            if (m_children == null)
            {
                m_children = new ObservableCollection<ExplorerItem>();
            }
            return m_children;
        }
        set
        {
            m_children = value;
        }
    }

    private bool m_isExpanded;
    public bool IsExpanded
    {
        get { return m_isExpanded; }
        set
        {
            if (m_isExpanded != value)
            {
                m_isExpanded = value;
                NotifyPropertyChanged("IsExpanded");
            }
        }
    }

    private bool m_isSelected;
    public bool IsSelected
    {
        get { return m_isSelected; }

        set
        {
            if (m_isSelected != value)
            {
                m_isSelected = value;
                NotifyPropertyChanged("IsSelected");
            }
        }

    }

    private void NotifyPropertyChanged(String propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...