在我的程序中,我有一个UserControl,其中包含TreeView
。 TreeView
有一个ViewModel和与之相关的模型。我想这样做,通过点击按钮,我可以在整个树上上下移动节点。这与在listBox
上执行的操作类似。在TreeView中上下移动节点
作为参考,我使用的是this article。
我在UserControl的代码隐藏中实现了以下功能,TreeView
存在于其中。
//Move up
private void moveUp_Click(object sender, RoutedEventArgs e)
{
if(UCViewModel.TreeView.SelectedItem != null)
{
if(UCViewModel.TreeView.SelectedItem is TreeModel)
{
TreeModel tm = UCViewModel.TreeView.SelectedItem as TreeModel;
if(tm.Rank != 1)
{
}
}
}
}
private void MoveUp(TreeModel tm)
{ //My guess on how to call the equivalent command...
foreach (TreeModel item in // **UCViewModel.TreeView.GetAllChildren....?)
{
}
}
因为我的结构是不同的,而我实际执行的ObservableCollection
为TreeView
,我没有获得相同的方法在该示例代码。
以下行是我关心的线条......
TreeView.Items();
TreeView.Items.Clear();
TreeView.Items.Add();
我怎样才能让等效调用与我的TreeView
是setu的方式P +请让我知道更多的代码会有帮助。
+1。另外,当我开始使用WPF中的TreeView时,我发现这篇文章非常有用:[使用ViewModel模式简化WPF TreeView](http://www.codeproject.com/Articles/26288/Simplifying-the- WPF-TreeView-by-View-ViewMode) – Sphinxxx
这是一个很好的解释人,谢谢。我最终看着'ObservableCollection.Move();' - http://msdn.microsoft.com/en-us/library/ms654933.aspx –