저는 C# WPF를 사용하는 네트워킹 기반 응용 프로그램을 만들고 있습니다. 이 응용 프로그램의 목적은 백엔드에서 실행되는 텔넷 명령을 통해 네트워킹 장치를 구성하는 것입니다.ObservableCollection에서 값을 채우는 방법?
내가 붙어있는 문제는 사용자가 추가 한 DataGrid에 여러 값이 표시되어 이제 모든 값을 반복하고 장치를 구성하려고합니다. 내가 ObservableCollection
값을 datagrid에서 개최하지만 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;
}
당신은 결코 추가되지 않은 : 당신은 외부 소스에서 데이터를 액세스하는 경우,
또는 우리는 그 세부 사항 중 하나를 모르겠지만, 일반적으로, 당신은 이런 식으로 뭔가를 할 것입니다 당신의'vlan' 컬렉션에 무엇이든. – gleng
아마 [관련 질문] (http://stackoverflow.com/questions/24259257/compiler-skipping-foreach-loop-during-compilation) 및 [채팅] (http://chat.stackoverflow.com/rooms/55762/) discussion-between-codesniper-and-jon-skeet) – EKrueger