首先设计页面
<telerik:RadTreeView x:Name="radTreeView" Margin="8" IsLoadondemandEnabled="True" IsExpandOnSingleClickEnabled="True" Loadondemand="radTreeView_Loadondemand"/>
页面载入的逻辑,其中优先定义全局变量
private EmiteServiceContractClient wsEmiteClient; private RadTreeViewItem treeViewItem=new RadTreeViewItem(); private ObservableCollection<MetricNode> RootNode { get; set; } private ObservableCollection<MetricNode> ChildNode { get; set; }
调用WebService,设置接入的地址,以及连接登入,然后执行方法
public MainPage() { InitializeComponent(); wsEmiteClient = new EmiteServiceContractClient(); wsEmiteClient.Endpoint.Address = new System.ServiceModel.EndpointAddress(new Uri(App.webServiceURL)); TempToken.CreateScopeAndSecurityToken(wsEmiteClient.InnerChannel); wsEmiteClient.GetRootNodes_OneView2Completed -= wsEmiteClient_GetRootNodes_OneView2Completed; wsEmiteClient.GetRootNodes_OneView2Completed += wsEmiteClient_GetRootNodes_OneView2Completed; wsEmiteClient.GetRootNodes_OneView2Async(); }
当radTreeView控件执行载入时触发逻辑。首先调用webservice获得余下子节点,然后获得点击的RadTreeViewitem项,并执行获得子节点的方法
private void radTreeView_Loadondemand(object sender,Telerik.Windows.RadRoutedEventArgs e) { wsEmiteClient.GetChildNodes_OneView2Completed -= wsEmiteClient_GetChildNodes_OneView2Completed; wsEmiteClient.GetChildNodes_OneView2Completed += wsEmiteClient_GetChildNodes_OneView2Completed; RadTreeViewItem clickItem = e.OriginalSource as RadTreeViewItem;; treeViewItem = clickItem; GetChildrenMetrics2(clickItem.Tag.ToString()); }
private void AddTreeViewItems() { foreach (MetricNode m in RootNode) { RadTreeViewItem category = new RadTreeViewItem(); (category).Header = m.MetricName; category.Foreground = new SolidColorBrush(Colors.Green); category.Tag = m.NodeId; radTreeView.Items.Add(category); } }
private void wsEmiteClient_GetRootNodes_OneView2Completed(object sender,GetRootNodes_OneView2CompletedEventArgs e) { if (e.Error == null) { if (e.Result != null && e.Result.Count > 0) { RootNode = e.Result; AddTreeViewItems(); } } else { //Common.LogError(ErrorHandler.GetFullErrorMessage(e.Error,"SvcModelviewmodel")); } }
private void GetChildrenMetrics2(string parentId) { TempToken.CreateScopeAndSecurityToken(wsEmiteClient.InnerChannel); wsEmiteClient.GetChildNodes_OneView2Completed -= wsEmiteClient_GetChildNodes_OneView2Completed; wsEmiteClient.GetChildNodes_OneView2Completed += wsEmiteClient_GetChildNodes_OneView2Completed; wsEmiteClient.GetChildNodes_OneView2Async(new MetricNodeRequest() { NodeId = int.Parse(parentId) }); }
private void wsEmiteClient_GetChildNodes_OneView2Completed(object sender,GetChildNodes_OneView2CompletedEventArgs e) { if (e.Error == null) { if (e.Result != null && e.Result.Count > 0) { ChildNode = e.Result; if (ChildNode!=null&&ChildNode.Count>0) { foreach (MetricNode metricNode in ChildNode) { RadTreeViewItem product = new RadTreeViewItem(); product.Header = metricNode.MetricName; product.Tag = metricNode.NodeId; treeViewItem.Items.Add(product); } } } } else { //Common.LogError(ErrorHandler.GetFullErrorMessage(e.Error,"SvcModelviewmodel")); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。