在的WinForms應用,treeview
的級別由node.level
什麼是WPF相應的命令給定的?WPF中treeview的級別?
12
A
回答
8
直接回答你的問題是WPF中沒有level屬性。
winforms控件和wpf控件之間沒有一對一的關係。因爲底層架構和用法在兩者中完全不同。在WPF中,你會heirarchical數據(LinkedList的一種數據結構網絡化的)綁定到TreeView和定義HeirarchicalDataTemplate來考慮問題的Treeview.ItemTemplate財產
7
: -
所以當我點擊一個節點,如何我知道它是哪個級別嗎?有解決方法嗎?
這裏是一個可能的解決方法: -
如果你有在視覺樹到控件的引用,可能是從一個Click
事件,那麼你可以使用該控件來找出哪個級別是在通過調用這樣的函數來調用樹視圖,這是我以前使用過的。
private int FindTreeLevel(DependencyObject control)
{
var level = -1;
if (control != null)
{
var parent = VisualTreeHelper.GetParent(control);
while (!(parent is TreeView) && (parent != null))
{
if (parent is TreeViewItem)
level++;
parent = VisualTreeHelper.GetParent(parent);
}
}
return level;
}
此方法將向上走的VisualTree又算什麼呢,當它發現TreeView
控制停止之前,有多少TreeViewItem
控制認定。
如果您需要在XAML這個可用,例如HierarchicalDataTemplate
的DataTrigger
,那麼你可以在一個IValueConverter
類包這件事
<Window.Resources>
<local:TreeLevelConverter x:Key="treeLevelConverter"/>
<HierarchicalDataTemplate DataType="{x:Type local:MyType}" >
...
<Grid ... >
<TextBlock x:Name="MyControl" ... />
...
</Grid>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource treeLevelConverter}}" Value="0" >
<Setter TargetName="MyControl" Property="Background" Value="Red"/>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
</Window.Resources>
然後使用下面的轉換器
public class TreeLevelConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var level = -1;
if (value is DependencyObject)
{
var parent = VisualTreeHelper.GetParent(value as DependencyObject);
while (!(parent is TreeView) && (parent != null))
{
if (parent is TreeViewItem)
level++;
parent = VisualTreeHelper.GetParent(parent);
}
}
return level;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new System.NotImplementedException();
}
}
相關問題
- 1. WPF中的Treeview
- 2. WPF級別的中介
- 3. 帶綁定的多級WPF Treeview
- 4. WPF的TreeView中HierarchicalDataTemplate
- 5. WPF的TreeView DataTemplate中
- 6. WPF中的TreeView中的DataGrid
- 7. 如何分別定製WPF TreeView列?
- 8. WPF的TreeView:在
- 9. 如何添加級別到TreeView控件
- 10. WPF中沒有RootNode的TreeView
- 11. WPF在TreeView中的Heirachical DataTemplate
- 12. 展平WPF中的TreeView
- 13. 的TreeView的CheckBox WPF
- 14. WPF TreeView的問題
- 15. WPF:綁定的TreeView
- 16. WPF TreeView示例
- 17. WPF TreeView綁定
- 18. ContentControl內WPF TreeView
- 19. WPF MVVM Treeview
- 20. WPF UserControl TreeView Height
- 21. WPF Treeview ShowRootlines
- 22. Treeview綁定wpf
- 23. wpf treeview綁定
- 24. wpf treeview mvvm
- 25. WPF TreeView跳轉
- 26. WPF導航TreeView
- 27. WPF treeview selectedItem databinding
- 28. WPF Treeview綁定
- 29. WPF TreeView刷新
- 30. TreeView&ListView WPF