private 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协议..请帮助
答案 0 :(得分: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);
}
答案 1 :(得分:0)
private 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协议..请帮助