1. 程式人生 > >WPF中Treeview繫結資料庫資料

WPF中Treeview繫結資料庫資料

WPF遍歷所有的節點其實和Winform的一樣,都是從跟級開始讀:這個是我寫的一個類,明天在寫出來新增刪除的來:
class BindTreeView
    {
        private DataTable dt;
        private string sql = "";
        DBHealper db = new DBHealper();//連線資料庫的類
        /// 2012-02-24 By Dawn
        /// <summary>
        /// 從資料庫中讀取資料填充Treeview的父節點
        /// </summary>
        /// <param name="tr">讀取資料的Treeview</param>
        public void TreeViewBind(TreeView tr)
        {
            tr.Items.Clear();//先清理一下節點
            sql = "select * from Node where NodeVisble=1";//我要讀的節點  NodeVisble自己定義的是否顯示節點 1為顯示
            dt = db.ExecuteSqlDS(sql); //這個不用關心,執行sql語句的嘛

            if (dt != null || dt.Rows.Count > 0)            //判斷一線有沒有資料
            {
                //首先遍歷父節點
                TreeViewItem item;//wpf不再是節點了  改成item 其實是一樣的
                DataRow[] dr = dt.Select("ParentID='0'");  //判斷一下啊 ,我用ParentID(父節點的值)這個是我定義好的要根據
                                                          // 這個讀父節點的 
                if (dr.Length != 0)
                {
                    foreach (DataRow drTemp in dr)
                    {
                        item = new TreeViewItem();
                        item.Tag = drTemp["ID"].ToString();     //一般繫結ID
                        item.Header = drTemp["NodeName"].ToString();    //名稱  
                        tr.Items.Add(item);
                        item.IsExpanded = true;
                        BindNode(item);
                    }
                }
            }
        }
        /// <summary>
        /// 遍歷所有的子節點
        /// </summary>
        /// <param name="item">父節點的item</param>
        private void BindNode(TreeViewItem item)
        {
            DataRow[] dr = dt.Select("ParentID = '" + item.Tag + "'"); //查詢子節點條件
            if (dr.Length > 0)
                foreach (DataRow drTemp in dr)
                {
                    TreeViewItem childItem = new TreeViewItem();
                    childItem.Header = drTemp["NodeName"].ToString();
                    childItem.Tag = drTemp["ID"].ToString();
                    //node.ChildNodes.Add(node);
                    item.Items.Add(childItem);
                    item.IsExpanded = true;
                    BindNode(childItem);
                }
        }
    }

相關推薦

WPFTreeview資料庫資料

WPF遍歷所有的節點其實和Winform的一樣,都是從跟級開始讀:這個是我寫的一個類,明天在寫出來新增刪除的來:class BindTreeView { private DataTable dt; private string sql

Devpress Gridcontrol動態資料庫後如何設定列名

首先在窗體中新增一個GridControl控制元件,然後寫繫結資料庫程式碼 DataSet ds=new DataSet(); ds=sql("select * form stu");//sql()函式是從資料庫中取資料, GridControl1.DataSource=d

WPF——控制元件資料後 第一次載入介面時成功 但後來資料來源發生變化 控制元件無變化

1.在 window_Loaded中設定物件繫結到源 private void window_Loaded(object sender, RoutedEventArgs e) { CurUserName.DataContext = CurrentUserAAA;

HTM select資料庫資料

用ajax去後臺數據庫中訪問資料,操作select前臺jsjQuery.ajax({      type:"POST",      dataType:"json",      url:url,//訪問後臺去資料庫查詢select的選項      success:functi

WPFTreeView控制元件資料和後臺動態新增資料

資料繫結: TreeView資料繫結需要使用層次結構資料模板(HierarchicalDataTemplate)來顯示分層資料。XAML程式碼如下: <TreeView Name="chapterTree" Grid.Column="0"> <TreeVie

WPF一種較好的Enums資料方法

## 引言 在你使用wpf應用程式開發的時候,是否需要進行資料繫結到`Enum`資料呢?在這篇文章中,我將向你展示在WPF中處理`Enum`資料繫結的方法。 假設存在一個這樣的`Enum`資料的定義,具體內容如下文程式碼中所示: ``` namespace LocalizeFrameworkWpfApp {

WPF:只讀集合在 XAML WPF:Binding for readonly collection in xaml)

問題背景: 某一天,我想做一個簽到打卡的日曆。基於 Calendar,想實現這個目標,於是找到了它的 SelectedDates 屬性,用於標記簽到過的日期。 那麼 問題 來了: 基於MVVM模式,想將其在xaml中繫結到ViewModel中的一個List<DateTime&g

python多條資料時解決雙資料衝突問題

問題描述 問題場景:用angularJS開發的時候有一個指令是$scope。作用是js控制器和html前端顯示之間的資料繫結。如圖所示,首先通過後臺返回資料,得到一個length為2的list,通過選擇對應的openstack賬號資訊,通過ng-change選擇對應賬號,

wpf學習-格式化資料

案例目的      案例是將產品的double型價格轉換為美元型表示 資料模型 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace

wpf學習-根據資料有條件地改變元素的屬性

案例目的      案例是根據產品的價格的大小來設定顯示價格控制元件TextBox的背景顏色 資料模型 using System; using System.Collections.Generic; using System.Linq; using System.Text

MVC DropdownList 怎麼資料庫的值

1.從資料庫讀取資料    List<GetCitInfo> modelcitys = new List<GetCitInfo>();             modelcitys = hpmDal.GetlistCityInfo(); 2.將資料

WPF自定義treeview事件SelectedItemChanged

1、設定事件繫結到函式TreeUAAddressSpace_SelectedItemChanged  this.treeBrowseUASpace.SelectedItemChanged += new System.Windows.RoutedPropertyChanged

DataGridView列加CheckBox資料庫

程式功能: 1.在DataGridView中新增CheckBox列,然後使用DataGridView來繫結Oracle資料 2.繫結的資料在DataGridView顯示時選擇需要顯示的資料,然後勾選CheckBox來刪除資料庫中的資料 private System.Wind

如何將datagrid控制元件資料匯出到excel

請問怎樣才能將datagrid中的資料匯出 並儲存到excel中,最好能按照設定的格式來顯示2. /// /// 讀取Excel文件/// /// 檔名稱/// 返回一個數據集public DataSet ExcelToDS(string Path){string strConn = "Provider=M

WPF Binding 最簡單的用法後臺資料!!!

後臺: public class cnm     {         public static string name;         public string Name { get => name; set => name = value; }    

C#comboBox資料集後事件取值出System.data.dataRowView問題

寫了一段程式碼,希望通過comboBox選項自動關聯填充另外兩項輸入框時發現數據獲取異常 comboBox繫結資料來源程式碼如下:             this.cbKHMC.DataSource = dt;             this.cbKHMC.Displa

WPF: ListBoxxml資料

    繼承自IEnumerable介面的各種集合都可以作為ListBox控制元件的資料來源。WPF中的XmlDataProvider 提供了一種將xml檔案作為集合資料來源的便捷方式,只要所定義的xml格式正確沒有拼寫錯誤,XPath路徑指定正確都可以繫結成功。 下面定義

wpf 選單樣式和樹形資料

## 前言 在wpf開發中,經常會使用到Menu和ContentMenu。但是原生的樣式比較簡陋,對於比較追求介面美好的人來說是十分不友好的。那麼,這就涉及到對Menu的樣式修改了。與此同時,我們還希望Menu自動Binding到檢視資料模型上,根據資料項自動展開MenuItem。接下來就對這些想法做一簡單

WPFTreeView控件的使用案例

tree return his folder sub daima 統計 orderby uri WPF總體來說還是比較方便的,其中變化最大的主要是Listview和Treeview控件,而且TreeView似乎在WPF是一個備受指責的控件,很多人說他不好用。我這個demo主

wpf 事件引數 到viewmdoel

public sealed class EventCommand : TriggerAction<DependencyObject> { public static readonly DependencyProperty CommandParameterProper