2009-10-06 13 views
0

privé void SetAppData() { ArrayList alDiscoveredNodes = this.DiscoverNetworNodes();Coule pas ajouter la case à cocher dans datatable à l'exécution C# wpf

 //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); 
     } 
    } 

Je souhaite ajouter une case à cocher opposée à certains utilisateurs dans la grille de données via la table de données. Comme si un utilisateur n'exécute pas le protocole FTP sur son ordinateur, j'ai mis une case à cocher qui n'est pas cochée pour montrer que cet utilisateur n'a pas de protocole FTP en cours d'exécution sur son ordinateur ..

+1

Vous vouloir ajouter une description et poser une question _clear_. –

+1

Question en double ??? http://stackoverflow.com/questions/1525883/wpf-add-checkbox-at-runtime –

+0

Pourquoi avez-vous demandé cette quête en tant que deux utilisateurs différents? –

Répondre

0

private void SetAppData() { ArrayList alDiscoveredNodes = this.DécouverteNetworNodes();

 //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); 
     } 
    } 

Je veux ajouter à la case en face des utilisateurs dans la grille de données via le tableau de données. Comme si un utilisateur ne fonctionne pas le protocole FTP sur son ordinateur, j'ai tu placer une case à cocher est décochée pour montrer que cet utilisateur n'a pas le protocole FTP sur son ordinateur .. toute aide s'il vous plaît

1
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); 
    } 
Questions connexes