Silverlight 使用RadTreeView動態繫結資料
在使用Telerik公司的RadTreeView控制元件時,再非同步呼叫WebService時,關於巢狀迴圈呼叫導致的阻塞現象,後來使用一次獲取WS資料,載入後通過LINQ來分類操作,避免了此種情況。
#region 點選縣名後,動態載入該縣的所有實時險情類別資訊及類別下的所有實時險情
RadTreeViewItem selectedItem = null;
//選中時動態繫結
private void RadTreeView1_Selected(object sender, Telerik.Windows.RadRoutedEventArgs e)
{
RadTreeView source = sender as RadTreeView;
selectedItem = source.SelectedItem as RadTreeViewItem;
if (!selectedItem.HasItems)
{
getTreeSoapClient client = new getTreeSoapClient();
//實時險情列表
client.getSSQXListCompleted += new EventHandler<getSSQXListCompletedEventArgs>(client_getSSQXListCompleted);
client.getSSQXListAsync(selectedItem.Header.ToString().Trim());
}
}
//實時險情類別
RadTreeViewItem targetTreeNode = null;
//實時險情名稱
void client_getSSQXListCompleted(object sender, getSSQXListCompletedEventArgs e)
{
IList<SSXQ> xqList = e.Result;
List<string> type = xqList.Select(p => p.災情型別).Distinct().ToList();
foreach (string s in type)
{
targetTreeNode = new RadTreeViewItem();
targetTreeNode.Header = s;
targetTreeNode.IsExpanded = true;
selectedItem.Items.Add(targetTreeNode);
IList<SSXQ> list = (from li in xqList
where li.災情型別 == s
select li
).ToList<SSXQ>();
if (list.Count > 0)
{
foreach (SSXQ xq in list)
{
RadTreeViewItem objTreeNode = new RadTreeViewItem();
objTreeNode.Header = xq.圖片標題;
objTreeNode.Tag = xq.OBJECTID;
objTreeNode.DataContext = xq;
objTreeNode.IsExpanded = true;
targetTreeNode.Items.Add(objTreeNode);
}
}
}
//設定拖拽操作
//objTreeNode.Drag(objTreeNode.Header, null, (s, ex) =>
//{
// Point p = ex.GetPosition(this.container);
// if (p.X > 0 && p.X < this.container.Width && p.Y > 0 && p.Y < this.container.Height)
// this.container.Children.Add(new RadTreeViewItem() { Header = (s as ContentControl).Content.ToString() });
//});
}
#endregion
相關文章
- silverlight中Combox繫結資料以及動態繫結預設選定項的用法
- class 和 style 資料動態繫結
- Vue 動態資料繫結核心方法Vue
- Silverlight RadTreeView 控制元件使用介紹View控制元件
- 理解靜態繫結與動態繫結
- C++ — 靜態繫結與動態繫結C++
- C++的動態繫結和靜態繫結C++
- java繼承-靜態繫結和動態繫結Java繼承
- java中的靜態繫結與動態繫結Java
- 動態繫結一
- 動態繫結和靜態繫結的簡單理解
- 深入理解 C++ 的動態繫結和靜態繫結C++
- javascript實現資料的雙向繫結(手動繫結)JavaScript
- JAVA動態繫結淺析Java
- 三、動態繫結屬性
- 動態繫結的心得 (轉)
- 百度前端學院任務動態資料繫結(五)前端
- 資料繫結
- 簡單資料繫結和複雜資料繫結
- vue 動態繫結 v-modelVue
- 動態繫結 input v-model
- Vue 動態繫結CSS樣式VueCSS
- 關於動態字串的繫結字串
- 資料繫結原理
- 【轉載】WPF中TreeView控制元件資料繫結和後臺動態新增資料(一)View控制元件
- Vue select 繫結動態變數Vue變數
- 域名繫結動態IP實戰案例
- vue動態(type可變)input繫結Vue
- 介面的繫結方案和動態SQLSQL
- SQL Server動態SQL,繫結變數SQLServer變數
- java基礎:多型(動態繫結)Java多型
- 第二講、Vue3.x繫結資料、繫結html、繫結屬性、迴圈資料VueHTML
- Flex 3快速入門: 處理資料 使用資料繫結Flex
- Vue的資料繫結Vue
- 資料繫結之謎
- 【Angular-資料繫結】Angular
- 2、理解資料繫結
- Angular | 理解資料繫結Angular