【问题标题】:Get index of RootNodes获取 RootNode 的索引
【发布时间】:2019-07-11 15:48:14
【问题描述】:

this example 中,索引为0。我的代码有多个根。如何获取选中根的索引?

 private void TreeView_DragItemsCompleted(TreeView sender, TreeViewDragItemsCompletedEventArgs args)
 {
            var children = sourceTreeView.RootNodes[0].Children;

            if (deletedItem != null)
            {
                for (int i = 0; i < children.Count; i++)
                {
                    if (children[i].Content.ToString() == deletedItem.Content.ToString())
                    {
                        children.RemoveAt(i);
                        break;
                    }
                }
            }

            sourceTreeView = null;
            deletedItem = null;
 }

【问题讨论】:

  • 以下是否有效?

标签: c# uwp treeview


【解决方案1】:

获取根节点的索引

请参考这个案例reply。您可以创建可绑定的数据源,例如案例回复。并为TreeViewItem 绑定IsSelected 属性。 When item selected IsSelected value will be changed, so you could foreach the itemsource then get the index of selected item.

<TreeViewItem 
    AutomationProperties.Name="{x:Bind Name}"
    IsExpanded="{x:Bind IsExpanded, Mode=TwoWay}"
    IsSelected="{x:Bind IsSelected, Mode=TwoWay}"
    ItemsSource="{x:Bind Children}"
    >
    <StackPanel Orientation="Horizontal">
        <Image Width="20" Source="../Assets/folder.png" />
        <TextBlock Margin="0,0,10,0" />
        <TextBlock Text="{x:Bind Name}" />
    </StackPanel>
</TreeViewItem>

获取索引

 private int GetIndex(ObservableCollection<ExplorerItem> DataSource)
 {
     int index = 0;
     foreach (var item in DataSource)
     {
         if (item.IsSelected == true)
         {
             index = DataSource.IndexOf(item);                 
         }
     }
     return index;
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2011-10-08
    • 2011-08-08
    • 1970-01-01
    相关资源
    最近更新 更多