Hello,
I want to program a plugin and I want to get a camera list similar as in the carusel sample. But instead of in a treeview in a listview.
I use VisualStudio 2017 and have there create a plugin. Ok , the plugin is visible in Management client and Backroundplugin is working. In Admin UserControl I have the list. But filling of the list is not working and I see not why. The code looks similar to the sample..
I’ve no idea what is wrong.
internal void FillContent(Item item)
{
textBoxName.Text = [item.Name](https://item.Name);
if (item.Properties.ContainsKey("IPAddress"))
{
IPAddress = item.Properties\["IPAddress"\];
}
if (item.Properties.ContainsKey("Port"))
{
Port = item.Properties\["Port"\];
}
if (item.Properties.ContainsKey("Enabled"))
{
EnabledCheck = item.Properties\["Enabled"\] == "Yes";
}
GetCameras();
}
internal void GetCameras()
{
List<Item> list = Configuration.Instance.GetItemsByKind(Kind.Camera);
EnvironmentManager.Instance.Log(false, "WingControlPluginUserControl", "GetCameras()");
if (list != null)
{
camList.Items.Clear();
EnvironmentManager.Instance.Log(false, "WingControlPluginUserControl", "GetCameras() start loop...");
foreach (Item item in list)
{
EnvironmentManager.Instance.Log(false, "WingControlPluginUserControl",string.Format( "GetCameras() item kind={0}, Name={1}", item.FQID.Kind.ToString(),[item.Name](https://item.Name)));
if (item.FQID.Kind == Kind.Camera)
{
CameraList cam;
cam.Camera = item;
//KeyValuePair<string, string> prop = item.Properties.ElementAt(10); //Get shortcut
cam.Shortcut = Convert.ToInt16(item.Properties\["Shortcut"\]);// prop.Value);
WriteList(cam);
}
}
}
}
private void WriteList(CameraList camera)
{
string\[\] arr = new string\[2\];
arr\[0\] = [camera.Camera.Name](https://camera.Camera.Name);
arr\[1\] = camera.Shortcut.ToString();
ListViewItem lvItem = new ListViewItem(arr);
if (camList.InvokeRequired)
camList.BeginInvoke(new MethodInvoker(() => camList.Items.Add(lvItem)));
else
{
camList.Items.Add(lvItem);
Cameras.Add(camera);
}
}