c# - 获取 RootNode 的索引
问题描述
在此示例中,索引为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;
}
解决方案
获取 RootNode 的索引
请参考此案例回复。您可以创建可绑定的数据源,例如案例回复。并将IsSelected
属性绑定为TreeViewItem
. 当项目选择IsSelected
的值将被改变,所以你可以 foreach itemsource 然后获取所选项目的索引。
<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;
}
推荐阅读
- java - Powermock - 试图模拟方法实际上调用方法
- javascript - Responsive D3 Donut Chart
- java - 如何在 jfxtableview 中移动行
- ios - Filtering array of objects using predicate crashes on iOS 9 and 10 devices
- bigdata - 数据湖和大数据是一样的吗?
- makefile - 将 makefile 变量传递给链接器部分
- google-app-engine - 无法在谷歌应用引擎中使用 tika 作为对 javax.iamgeio.imageio 的受限访问并使用 apache poi 删除 docx 的形状
- java - 在 Kafka Streams 中序列化 HashMap
- python - 图像过滤/分类/识别
- google-cloud-firestore - Google Cloud Function - 存储触发器抱怨返回未定义