RadTreeView按需加载


XML:

.....

LoadOnDemand="ExplorerTreeView_LoadOnDemand"

>

后台代码:

private void ExplorerTreeView_LoadOnDemand(object sender, Telerik.Windows.RadRoutedEventArgs e)
{
RadTreeViewItem item = e.OriginalSource as RadTreeViewItem;
if (item.Item is VoyageVO)
{
var voyage = item.Item as VoyageVO;
ObservableCollection<LegVO> Legs = new ObservableCollection<LegVO>();

if (item != null && item.Items.Count < 1)
{
Task.Factory.StartNew(() =>
{
Legs = _IndoorSampleCheckHttpProxy.GetLegsByVoyageID(voyage.ID);
if (Legs == null) return;
//voyage.Legs.AddRange(Legs);
Application.Current.Dispatcher.Invoke(new Action(delegate()
{
item.ItemsSource = Legs;
}));
})
.ContinueWith((t) =>
{
Application.Current.Dispatcher.Invoke(new Action(delegate()
{
if (Legs.Count == 0)
item.IsLoadOnDemandEnabled = false;
else
item.IsLoadingOnDemand = false;
}));
});
}
}
else if (item.Item is LegVO)
{
var leg = item.Item as LegVO;
ObservableCollection<StationVO> Stations = new ObservableCollection<StationVO>();
if (item != null && item.Items.Count < 1)
{
StationQueryInformation stationQueryInformation = new StationQueryInformation();
stationQueryInformation.LegID = leg.ID;
Task.Factory.StartNew(() =>
{
Stations = _IndoorSampleCheckHttpProxy.GetStationsByLeg(stationQueryInformation);
//leg.Stations.AddRange(Stations);
Application.Current.Dispatcher.Invoke(new Action(delegate()
{
item.ItemsSource = Stations;
}));
})
.ContinueWith((t) =>
{
item.Dispatcher.Invoke(new Action(delegate()
{
if (Stations.Count == 0)
item.IsLoadOnDemandEnabled = false;
else
item.IsLoadingOnDemand = false;
}));
});
}
}
}

标记部分为:两种操作都能达到目的,前一种会造成TreeViewItem“多选”,显示效果较差。

优质内容筛选与推荐>>
1、代码大全学习笔记(一)表驱动方法
2、Installshield 附加数据库
3、20二进制文件操作
4、git笔记之安装使用
5、在src目录下的MyBatis的核心配置文件和SQL映射文件mybatis-config.xml


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号