代码之家  ›  专栏  ›  技术社区  ›  AZ_

无法在运行时c_wpf的数据表中添加复选框

  •  0
  • AZ_  · 技术社区  · 15 年前

    私有void setappdata() { arraylist aldiscoverednodes=this.discovernetwornodes();

            //initializeViewDataTable will add colums to ViewDataTable that will be shown on View
            initializeViewDataTable(alDiscoveredNodes);
    
            Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (setPopulateTree)delegate(ArrayList alNodes)
            {
                this.PopulateTreeView(alNodes);
                //this.DrawChart(dtProtocolDetails);                
    
            }, alDiscoveredNodes);
    
            //GetNetworkComputers objGetNetworkComputers = new GetNetworkComputers(100);
            DataTable dtProtocolInfo = objCProtocols.ScanForProtocols(alDiscoveredNodes);
    
            //Calling populateViewDataTable will take dtProtocolInfo by reference and then it will create 
            // another datatable that is for viewsing purpose
            populateViewDataTable(ref dtProtocolInfo);
    
            Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (setData)delegate(DataTable dtProtocolDetails)
            {
                dataGridRunningProtocols.DataContext = dtProtocolDetails;
    
    
            }, dtProtocolInfo);
    
    
            Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (setChartData)delegate(ref DataTable dtProtocolDetails)
            {
    
                try
                {
                    DrawChart(dtProtocolDetails);                   
    
                }
                catch (Exception exc)
                {
    
                    MessageBox.Show(exc.InnerException.ToString());
                }
            }, dtProtocolInfo);
    
    
            Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (setChartTitle)delegate(string strTitle)
            {
                mainChart.Title = "Protocol Availability Over Network";
    
    
            }, "");
            //pThread.Abort();
           // splash.Close(new TimeSpan(00, 00, 3));
    
        }
    
        /// <summary>
        /// It will add Columns to DataTable at run time according to columns defined in
        /// ProtocolConfigration Array
        /// </summary>
        private void initializeViewDataTable(ArrayList alHosts)
        {
            DataColumn dt = null;
            viewDataTable = new DataTable();
            viewDataTable.Columns.Add("Host");
            for (int i = 0; i < ProtocolConfiguration.STR_ARR_PROTOCOLS.Length; i++)
            {
                //viewDataTable.Columns.Add(ProtocolConfiguration.STR_ARR_PROTOCOLS[i][1] + " (" + ProtocolConfiguration.STR_ARR_PROTOCOLS[i][0] + " )", System.Type.GetType("System.Boolean"));                
                dt = new DataColumn(ProtocolConfiguration.STR_ARR_PROTOCOLS[i][1] + " (" + ProtocolConfiguration.STR_ARR_PROTOCOLS[i][0] + " )");
                //dt.DataType = typeof(System.Windows.Controls.CheckBox);
                dt.DataType = typeof(bool);
                viewDataTable.Columns.Add(dt);                
            }
    
           foreach (string strHost in alHosts)
           {
    
    
               //CheckBox cbTemp = new CheckBox();
               //cbTemp.IsChecked = true;
               viewDataTable.Rows.Add(strHost, false);
           }
        }
    

    我想通过数据表在数据网格中添加与某些用户相对的复选框。 就像如果一个用户没有在他的计算机上运行ftp协议一样,我让你放置一个未选中的复选框来显示这个用户没有在他的计算机上运行ftp协议。请帮忙

    2 回复  |  直到 10 年前
        1
  •  1
  •   user4182386    10 年前
    private void DrawChart() {
    
    ArrayList ar= new ArrayList();
    ar.Add("one");
        ar.Add("two");
        ar.Add("three");
    
            for (int i = 0; i <ar.count ; i++)
            {
                               addRecursiveLedgendAfterInit(ar[i], 50);
            }
        }
    private void addRecursiveLedgendAfterInit(string legend,int legendvalue) {
    
            ICollection<KeyValuePair<String, int>> data = new Dictionary<String, int>();
            data.Add(new KeyValuePair<string, int>(legend, legendvalue));
    
                ColumnSeries mycolseries = new ColumnSeries
                {
                    ItemsSource = data,
    
                    Title = legend,
                    IndependentValuePath = "Key",
                    DependentValuePath = "Value",
    
                };
    
                mainChart.Series.Add(mycolseries);
        }
    
        2
  •  0
  •   AZ_    15 年前

    私有void setappdata() { arraylist aldiscoverednodes=this.discovernetwornodes();

            //initializeViewDataTable will add colums to ViewDataTable that will be shown on View
            initializeViewDataTable(alDiscoveredNodes);
    
            Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (setPopulateTree)delegate(ArrayList alNodes)
            {
                this.PopulateTreeView(alNodes);
                //this.DrawChart(dtProtocolDetails);                
    
            }, alDiscoveredNodes);
    
            //GetNetworkComputers objGetNetworkComputers = new GetNetworkComputers(100);
            DataTable dtProtocolInfo = objCProtocols.ScanForProtocols(alDiscoveredNodes);
    
            //Calling populateViewDataTable will take dtProtocolInfo by reference and then it will create 
            // another datatable that is for viewsing purpose
            populateViewDataTable(ref dtProtocolInfo);
    
            Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (setData)delegate(DataTable dtProtocolDetails)
            {
                dataGridRunningProtocols.DataContext = dtProtocolDetails;
    
    
            }, dtProtocolInfo);
    
    
            Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (setChartData)delegate(ref DataTable dtProtocolDetails)
            {
    
                try
                {
                    DrawChart(dtProtocolDetails);                   
    
                }
                catch (Exception exc)
                {
    
                    MessageBox.Show(exc.InnerException.ToString());
                }
            }, dtProtocolInfo);
    
    
            Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (setChartTitle)delegate(string strTitle)
            {
                mainChart.Title = "Protocol Availability Over Network";
    
    
            }, "");
            //pThread.Abort();
           // splash.Close(new TimeSpan(00, 00, 3));
    
        }
    
        /// <summary>
        /// It will add Columns to DataTable at run time according to columns defined in
        /// ProtocolConfigration Array
        /// </summary>
        private void initializeViewDataTable(ArrayList alHosts)
        {
            DataColumn dt = null;
            viewDataTable = new DataTable();
            viewDataTable.Columns.Add("Host");
            for (int i = 0; i < ProtocolConfiguration.STR_ARR_PROTOCOLS.Length; i++)
            {
                //viewDataTable.Columns.Add(ProtocolConfiguration.STR_ARR_PROTOCOLS[i][1] + " (" + ProtocolConfiguration.STR_ARR_PROTOCOLS[i][0] + " )", System.Type.GetType("System.Boolean"));                
                dt = new DataColumn(ProtocolConfiguration.STR_ARR_PROTOCOLS[i][1] + " (" + ProtocolConfiguration.STR_ARR_PROTOCOLS[i][0] + " )");
                //dt.DataType = typeof(System.Windows.Controls.CheckBox);
                dt.DataType = typeof(bool);
                viewDataTable.Columns.Add(dt);                
            }
    
           foreach (string strHost in alHosts)
           {
    
    
               //CheckBox cbTemp = new CheckBox();
               //cbTemp.IsChecked = true;
               viewDataTable.Rows.Add(strHost, false);
           }
        }
    

    我想通过数据表在数据网格中添加与某些用户相对的复选框。 就像如果一个用户没有在他的计算机上运行ftp协议一样,我让你放置一个未选中的复选框来显示这个用户没有在他的计算机上运行ftp协议。请帮忙