C#對WPF數據綁定的菜單插入Seperator分隔
WPF前臺代碼展示
<Window.Resources> <local:Source x:Key="src"/> </Window.Resources> <StackPanel> <Menu> <MenuItem Header="Animals" ItemsSource="{Binding Source={StaticResource src}}" /> </Menu> </StackPanel>
C#對WPF數據綁定
public class Source : ObservableCollection<object> { public Source() { //Spiders Add("Golden Silk Spider"); Add("Black Widow Spider"); //BigCats Add("Jaguar"); Add("African Wildcat"); Add("Cheetah"); //Amphibians Add("California Newt"); Add("Tomato Frog"); Add("Green Tree Frog"); } }
這種方式簡單易用,但有個問題,缺乏靈活性:比如說如果我們要根據不同的類別分組,通過seperator隔離,生成如下圖所示的菜單,這時該如何做呢?
我試過幾種方法,如設置ItemStyleSelecter,DataTemplate等,效果都不是很好,最後找到一種很簡單的方法:在數據源中直接插入Seperator即可。
public class Source : ObservableCollection<object> { public Source() { Add("Golden Silk Spider"); Add("Black Widow Spider"); Add(new Separator()); Add("Jaguar"); Add("African Wildcat"); Add("Cheetah"); Add(new Separator()); Add("California Newt"); Add("Tomato Frog"); Add("Green Tree Frog"); } }
這種方式簡單易用,並且能保持和系統主題樣式一致,是目前我知道的最好的方法瞭。ToobBar的Seperator也可以用這種方式生成。
到此這篇關於WPF菜單插入Seperator的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 教你使用Python畫棵聖誕樹完整代碼
- Python實現繪制聖誕樹和煙花的示例代碼
- C++11 強類型枚舉相關總結
- Python 無限級分類樹狀結構生成算法的實現
- scrapy中的spider傳參實現增量的方法