wpf的treeview控制項的一般用法書上都有介紹,就沒必要多講。這裡主要說明treeview裡實現checkbox。
首先構造乙個node類
接著來看一下後台資料,這裡需要讓treeview的節點自動展開,並實現父節點被選,子節點全被選,父節點不選,子節點全部不選的功能(這裡應該有更好的辦法,我這裡是用父節點的名稱來判斷的,對於指定的treeview資料還好說)。public
class node : inotifypropertychanged
}public
node()
////// 節點名稱
///public
string nodename
////// 被刪除
///private
bool? isselected = false;
public
bool? isselected
get
}///
/// 子節點集合
///public listnodes
}public
enum nodetype
前台的xaml**:public
partial
class mainwindow : window
public
mainwindow()
private listgetnodelist()
},new node()}};}
private
void
expandtree()}}
}private
void
window_loaded(object sender, routedeventargs e)
private
void
checkbox_checked(object sender, routedeventargs e)
}else
if ((sender as checkbox).content.tostring() == "根節點1")
}else
else
nodelist[0].isselected = null;
}if (nodelist[1].nodes.exists(x => x.nodename == (sender as checkbox).content.tostring()))
else
nodelist[1].isselected = null;}}
}private
void
checkbox_unchecked(object sender, routedeventargs e)
}else
if ((sender as checkbox).content.tostring() == "根節點1")
}else
else
nodelist[0].isselected = null;
}if (nodelist[1].nodes.exists(x => x.nodename == (sender as checkbox).content.tostring()))
else
nodelist[1].isselected = null;}}
}}
或許這裡可以用style來做,暫時解決問題先就這樣,因為**也不長。
name="treeview_nodelist">
datatype=""
itemssource="">
orientation="horizontal"
margin="0,2,0,2">
content=""
tooltip=""
ischecked=""
checked="checkbox_checked"
unchecked="checkbox_unchecked" >
checkbox>
stackpanel>
hierarchicaldatatemplate>
treeview.resources>
treeview>
grid>
WPF之Treeview控制項簡單用法
treeview 表示顯示在樹結構中分層資料具有專案可展開和摺疊的控制項 treeview 的內容是可以包含豐富內容的 treeviewitem 控制項,如 button 和 image 控制項。treeviewitem 可以包含乙個或多 treeviewitem 物件作為後代。treeview 定...
TreeView控制項
treeview treenode treeview 類,表示在樹狀結構中顯示分層資料的控制項,該樹狀結構包含可展開和摺疊的項。nodes 獲取分配給樹檢視控制項的樹節點集合。getnodeat point 檢索位於指定點的樹節點。treenode類,表示 treeview 控制項中的節點。node...
TreeView控制項
在我們的開發中經常會遇到一些有樹形層次關係的資料,比如顯示無限級分類和顯示某 個檔案下的所有檔案及資料夾,對於這些帶有樹形層次關係的資料的顯示用treeview 控制項 是乙個比較不錯的選擇。treeview控制項支援資料繫結,也支援以程式設計的方式動態新增節點。在 treeview控制項中每個節點...