我有一个绑定到可观察集合的树视图。集合中的每个项目本身都有一个带有项目的可观察集合。
public class Item
{
public ObservableCollection<Item> Items { get; set; }
public Item Parent { get; set; }
}
public Item Root { get; set; }
<TreeView ItemsSource={Binding Root.Items}>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Items}">
<TextBlock Text="{Binding}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
我想将树中的一个节点从一个分支移动到另一个分支,但是这样做会使控件失去焦点和选择。
UnindentItemCommand = new DelegateCommand<Item>(
item =>
{
var parent = item.Parent;
parent.Items.Remove(item);
parent.parent.Items.Add(item);
}
);
我曾尝试使用BindableSelectedItemBehavior
from another question,但没有帮助。
有人对此有解决方案吗?