【发布时间】:2014-08-08 18:55:40
【问题描述】:
我正在使用 C# WPF 开发基于网络的应用程序。该应用程序的目的是通过在后端运行的 telnet 命令配置网络设备。
我卡住的问题是数据网格中显示了多个由用户添加的值,现在我想遍历所有值并配置我的设备。我使用ObservableCollection 来保存数据网格中存在的值,但在foreach 循环中我无法遍历所有值并填充它们,因为我认为问题是我的ObservableCollection 是空的。请告诉我填充数据的方式。
这是我的代码:
public ObservableCollection<VLANSPropertyClass> vlan { get; set; }
public bool VLAN()
{
vlan = new ObservableCollection<VLANSPropertyClass>();
string _command;
_command = "config t \n";
WriteAPCommand(_command);
ReadAPCommand();
foreach(VLANSPropertyClass v in vlan)
{
Console.WriteLine("-----------------FOREACH STARTED----------------");
_command = "vlan " + v.vid + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "name " + v.vname + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "interface " + v.vid + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "ip address " + v.ip + " " + v.mask + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command="exit\r";
WriteAPCommand(_command);
ReadAPCommand();
_command = "interface " + v.vports + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "switchport access " + v.vid + "\n";
WriteAPCommand(_command);
ReadAPCommand();
_command = "copy runningconfig startupconfig\n";
WriteAPCommand(_command);
ReadAPCommand();
}
Console.WriteLine("-----------------FOREACH COMPLETED----------------");
return true;
}
VLANSProperty 类是:
public class VLANSPropertyClass
{
public string vname { get; set; }
public int S_No { get; set; }
public string vid { get; set; }
public string ip { get; set; }
public string mask { get; set; }
public string vports { get; set; }
}
读写方法是:
public void WriteAPCommand(string _apCommand)
{
_telnetData = new byte[1024];
_telnetData = Encoding.ASCII.GetBytes(_apCommand);
_networkstream.Write(_telnetData, 0, _telnetData.Length);
Thread.Sleep(2000);
}
public string ReadAPCommand()
{
_telnetData = new byte[1024];
_recvBytes = _networkstream.Read(_telnetData, 0, _telnetData.Length);
_stringData = Encoding.ASCII.GetString(_telnetData, 0, _recvBytes);
Console.WriteLine(_stringData);
return _stringData;
}
【问题讨论】: