在我的程序中,我有一個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 –