树状控件在程序中经常用到。 但如果树状结构比较大,数据较多,将所有数据都加载后再绑定到控件,会影响软件的运行速度。比较理想的解决方法是延时加载,在展开树的时候再加载数据。
下面是树状控件延时加载数据的实现方式:
ViewModel:
public class TaskFolderVM:WorkspaceVM
{
#region Data&Properties
TaskFolder _taskFolder;
public TaskFolderVM Parent { get; set; }
//增加 一个静态的虚拟子项;
static TaskFolderVM _dummyChild = new TaskFolderVM();
ObservableCollection<TaskFolderVM> _subFolderVMs;
public ObservableCollection<TaskFolderVM> SubFolderVMs
{
get
{
if (_subFolderVMs == null)
{
this._subFolderVMs = new ObservableCollection<TaskFolderVM>();
this._subFolderVMs.Add(_dummyChild);
// 初始化时只加载虚拟子项