syncfusion-wpf-breadcrumb
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseImplementing WPF HierarchyNavigator (Breadcrumb)
实现WPF HierarchyNavigator(面包屑)控件
Guide for implementing the Syncfusion® WPF HierarchyNavigator control — a breadcrumb / address-bar component similar to the Windows Explorer address bar, enabling hierarchical path navigation with data binding, edit mode, history, and progress bar support.
本指南介绍如何实现Syncfusion® WPF HierarchyNavigator控件——这是一款类似Windows资源管理器地址栏的面包屑/地址栏组件,支持数据绑定、编辑模式、历史记录和进度条,可实现层级路径导航。
When to Use This Skill
何时使用此技能
Use this skill when you need to:
- Create a breadcrumb / address-bar navigation UI in WPF
- Populate with declarative items (
HierarchyNavigator) or data-bound collectionsHierarchyNavigatorItem - Use to display multi-level business objects, XML data, or WCF-sourced data
HierarchicalDataTemplate - Enable edit mode so users can type and autocomplete navigation paths
- Show navigation history via the back-arrow dropdown
- Add a Refresh button and handle
HierarchyNavigatorRefreshButtonClick - Display / cancel a progress bar during navigation operations
- Respond to item selection via Command binding (MVVM pattern)
- Apply tooltips, keyboard navigation, and built-in themes
在以下场景中可使用此技能:
- 在WPF中创建面包屑/地址栏导航UI
- 使用声明式项()或数据绑定集合填充
HierarchyNavigatorItemHierarchyNavigator - 使用显示多级业务对象、XML数据或WCF源数据
HierarchicalDataTemplate - 启用编辑模式,让用户可输入并自动补全导航路径
- 通过返回箭头下拉菜单显示导航历史
- 添加刷新按钮并处理事件
HierarchyNavigatorRefreshButtonClick - 在导航操作期间显示/取消进度条
- 通过命令绑定(MVVM模式)响应项选择
- 应用工具提示、键盘导航和内置主题
Component Overview
组件概述
HierarchyNavigatorHierarchyNavigatorItemRequired assemblies:
Syncfusion.Tools.WPFSyncfusion.Shared.WPF
XAML namespace:
xml
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"C# namespace:
csharp
using Syncfusion.Windows.Tools.Controls;HierarchyNavigatorHierarchyNavigatorItem所需程序集:
Syncfusion.Tools.WPFSyncfusion.Shared.WPF
XAML命名空间:
xml
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"C#命名空间:
csharp
using Syncfusion.Windows.Tools.Controls;Documentation and Navigation Guide
文档与导航指南
Getting Started
入门指南
📄 Read: references/getting-started.md
- Assembly references and NuGet setup
- Adding via Designer, XAML, and C#
- Adding items declaratively with
HierarchyNavigatorItem - Basic +
ItemsSourcebindingHierarchicalDataTemplate - Applying built-in themes
📄 阅读: references/getting-started.md
- 程序集引用与NuGet设置
- 通过设计器、XAML和C#添加控件
- 使用声明式添加项
HierarchyNavigatorItem - 基础+
ItemsSource绑定HierarchicalDataTemplate - 应用内置主题
Populating Data
填充数据
📄 Read: references/populating-data.md
- Binding to business objects
ObservableCollection - for multi-level hierarchies
HierarchicalDataTemplate - Binding XML data via parsing
XDocument - Binding via WCF service
- On-demand / lazy item loading
📄 阅读: references/populating-data.md
- 绑定到业务对象
ObservableCollection - 使用处理多级层级结构
HierarchicalDataTemplate - 通过解析绑定XML数据
XDocument - 通过WCF服务绑定数据
- 按需/延迟加载项
Edit Mode & AutoComplete
编辑模式与自动补全
📄 Read: references/edit-mode-and-autocomplete.md
- property to allow path typing
IsEnableEditMode - AutoComplete filter dropdown showing matching paths
- Keyboard: Enter to confirm, Esc to cancel
- Behavior when an invalid path is entered
📄 阅读: references/edit-mode-and-autocomplete.md
- 使用属性允许路径输入
IsEnableEditMode - 自动补全筛选下拉菜单显示匹配路径
- 键盘操作:按Enter确认,按Esc取消
- 输入无效路径时的行为
Navigation Features
导航功能
📄 Read: references/navigation-features.md
- and per-item tooltips
ShowToolTip - Navigation history (back-arrow dropdown)
- Refresh button and event
HierarchyNavigatorRefreshButtonClick - /
ShowProgressBar()with optionalCancelProgressBar()TimeSpan - Keyboard navigation reference table
- Restricting level selection
📄 阅读: references/navigation-features.md
- 与单个项的工具提示
ShowToolTip - 导航历史(返回箭头下拉菜单)
- 刷新按钮与事件
HierarchyNavigatorRefreshButtonClick - 使用可选调用
TimeSpan/ShowProgressBar()CancelProgressBar() - 键盘导航参考表
- 限制层级选择
Command Binding (MVVM)
命令绑定(MVVM)
📄 Read: references/command-binding.md
- property binding to
Command/ICommandDelegateCommand - pattern in ViewModel
SelectedItemCommand - Responding to selected item changes
- Passing as
HierarchyNavigatorItemCommandParameter
📄 阅读: references/command-binding.md
- 将属性绑定到
Command/ICommandDelegateCommand - ViewModel中的模式
SelectedItemCommand - 响应选中项变更
- 将作为
HierarchyNavigatorItem传递CommandParameter
Appearance & Themes
外观与主题
📄 Read: references/appearance-and-themes.md
- with
ItemTemplatefor custom item displayHierarchicalDataTemplate - Customizing with Microsoft Expression Blend
- Applying built-in themes via
SfSkinManager - Creating custom themes with ThemeStudio
📄 阅读: references/appearance-and-themes.md
- 结合使用
HierarchicalDataTemplate自定义项显示ItemTemplate - 使用Microsoft Expression Blend自定义外观
- 通过应用内置主题
SfSkinManager - 使用ThemeStudio创建自定义主题
Quick Start
快速入门
Declarative items (XAML)
声明式项(XAML)
xml
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
x:Class="MyApp.MainWindow"
Title="MainWindow" Height="350" Width="525">
<Grid>
<syncfusion:HierarchyNavigator x:Name="navigator"
VerticalAlignment="Top"
Height="30"
Width="600">
<syncfusion:HierarchyNavigator.Items>
<syncfusion:HierarchyNavigatorItem Content="Syncfusion">
<syncfusion:HierarchyNavigatorItem.Items>
<syncfusion:HierarchyNavigatorItem Content="User Interface">
<syncfusion:HierarchyNavigatorItem.Items>
<syncfusion:HierarchyNavigatorItem Content="WPF"/>
<syncfusion:HierarchyNavigatorItem Content="Silverlight"/>
</syncfusion:HierarchyNavigatorItem.Items>
</syncfusion:HierarchyNavigatorItem>
</syncfusion:HierarchyNavigatorItem.Items>
</syncfusion:HierarchyNavigatorItem>
</syncfusion:HierarchyNavigator.Items>
</syncfusion:HierarchyNavigator>
</Grid>
</Window>xml
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
x:Class="MyApp.MainWindow"
Title="MainWindow" Height="350" Width="525">
<Grid>
<syncfusion:HierarchyNavigator x:Name="navigator"
VerticalAlignment="Top"
Height="30"
Width="600">
<syncfusion:HierarchyNavigator.Items>
<syncfusion:HierarchyNavigatorItem Content="Syncfusion">
<syncfusion:HierarchyNavigatorItem.Items>
<syncfusion:HierarchyNavigatorItem Content="User Interface">
<syncfusion:HierarchyNavigatorItem.Items>
<syncfusion:HierarchyNavigatorItem Content="WPF"/>
<syncfusion:HierarchyNavigatorItem Content="Silverlight"/>
</syncfusion:HierarchyNavigatorItem.Items>
</syncfusion:HierarchyNavigatorItem>
</syncfusion:HierarchyNavigatorItem.Items>
</syncfusion:HierarchyNavigatorItem>
</syncfusion:HierarchyNavigator.Items>
</syncfusion:HierarchyNavigator>
</Grid>
</Window>Data-bound (XAML + MVVM)
数据绑定(XAML + MVVM)
xml
<syncfusion:HierarchyNavigator ItemsSource="{Binding HierarchyItems}"
Height="30" Width="600">
<syncfusion:HierarchyNavigator.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" Margin="2,0"/>
</HierarchicalDataTemplate>
</syncfusion:HierarchyNavigator.ItemTemplate>
</syncfusion:HierarchyNavigator>xml
<syncfusion:HierarchyNavigator ItemsSource="{Binding HierarchyItems}"
Height="30" Width="600">
<syncfusion:HierarchyNavigator.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" Margin="2,0"/>
</HierarchicalDataTemplate>
</syncfusion:HierarchyNavigator.ItemTemplate>
</syncfusion:HierarchyNavigator>C# code-behind
C#代码后置
csharp
using Syncfusion.Windows.Tools.Controls;
HierarchyNavigator navigator = new HierarchyNavigator { Height = 30 };
HierarchyNavigatorItem root = new HierarchyNavigatorItem { Content = "Syncfusion" };
HierarchyNavigatorItem child = new HierarchyNavigatorItem { Content = "WPF" };
root.Items.Add(child);
navigator.Items.Add(root);
this.Content = navigator;csharp
using Syncfusion.Windows.Tools.Controls;
HierarchyNavigator navigator = new HierarchyNavigator { Height = 30 };
HierarchyNavigatorItem root = new HierarchyNavigatorItem { Content = "Syncfusion" };
HierarchyNavigatorItem child = new HierarchyNavigatorItem { Content = "WPF" };
root.Items.Add(child);
navigator.Items.Add(root);
this.Content = navigator;Common Patterns
常见模式
Choose the right population approach
选择合适的填充方式
- Static/known hierarchy → use declarative in XAML
HierarchyNavigatorItem - Business object collection → use +
ItemsSourceHierarchicalDataTemplate - XML or WCF data → parse to , then bind to
ObservableCollectionItemsSource - Large/lazy-loaded hierarchy → load children on demand via item expanded event
- 静态/已知层级结构 → 在XAML中使用声明式
HierarchyNavigatorItem - 业务对象集合 → 使用+
ItemsSourceHierarchicalDataTemplate - XML或WCF数据 → 解析为,然后绑定到
ObservableCollectionItemsSource - 大型/延迟加载层级结构 → 通过项展开事件按需加载子项
Enable edit mode with AutoComplete
启用带自动补全的编辑模式
xml
<syncfusion:HierarchyNavigator IsEnableEditMode="True" .../>User clicks the control to enter a path; a filtered dropdown suggests matching nodes. Press Enter to confirm, Esc to cancel.
xml
<syncfusion:HierarchyNavigator IsEnableEditMode="True" .../>用户点击控件即可输入路径;筛选下拉菜单会建议匹配的节点。按Enter确认,按Esc取消。
Show progress bar during navigation
导航时显示进度条
csharp
// Show for default 500ms
navigator.ShowProgressBar();
// Show for custom duration
navigator.ShowProgressBar(new TimeSpan(0, 0, 0, 0, 1000));
// Cancel immediately
navigator.CancelProgressBar();csharp
// 显示默认500毫秒
navigator.ShowProgressBar();
// 显示自定义时长
navigator.ShowProgressBar(new TimeSpan(0, 0, 0, 0, 1000));
// 立即取消
navigator.CancelProgressBar();MVVM command binding
MVVM命令绑定
xml
<syncfusion:HierarchyNavigator Command="{Binding SelectedItemCommand}"
ItemsSource="{Binding Items}" .../>The command fires when the selected breadcrumb item changes, passing the as parameter.
HierarchyNavigatorItemxml
<syncfusion:HierarchyNavigator Command="{Binding SelectedItemCommand}"
ItemsSource="{Binding Items}" .../>当选定的面包屑项变更时,命令会触发,并将作为参数传递。
HierarchyNavigatorItemKey Properties & Methods
关键属性与方法
| Property / Method | Description |
|---|---|
| Declarative |
| Bound data collection |
| |
| Enables path editing with AutoComplete |
| Enables tooltips on all items |
| |
| Displays progress bar (default 500ms) |
| Displays progress bar for specified duration |
| Cancels visible progress bar |
| Cancels progress bar after specified delay |
| Event fired when Refresh button is clicked |
| 属性/方法 | 说明 |
|---|---|
| 声明式 |
| 绑定的数据集合 |
| 用于项显示的 |
| 启用带自动补全的路径编辑功能 |
| 为所有项启用工具提示 |
| 当选定项变更时触发的 |
| 显示进度条(默认500毫秒) |
| 显示指定时长的进度条 |
| 立即取消可见的进度条 |
| 延迟指定时间后取消进度条 |
| 点击刷新按钮时触发的事件 |