Ejemplo n.º 1
0
        private void vApp_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            var vmAppliance = (VM_appliance)sender;

            if (vmAppliance == null)
            {
                return;
            }

            var selectedAppliance = dataGridViewVMAppliances.SelectedRows.Count > 0
                ? ((VMApplianceRow)dataGridViewVMAppliances.SelectedRows[0]).VMAppliance
                : null;

            var selectedRowAffected = selectedAppliance != null && selectedAppliance.opaque_ref == vmAppliance.opaque_ref;

            switch (e.PropertyName)
            {
            case "allowed_operations":
                if (selectedRowAffected)
                {
                    Program.Invoke(this, RefreshButtons);
                }
                break;

            case "name_label":
            case "name_description":
                Program.Invoke(this, () =>
                {
                    VMApplianceRow row = FindVmApplianceRow(vmAppliance);
                    if (row != null)
                    {
                        row.RefreshRow(false);
                    }
                });
                break;

            case "VMs":
                Program.Invoke(this, () =>
                {
                    VMApplianceRow row = FindVmApplianceRow(vmAppliance);
                    if (row != null)
                    {
                        row.RefreshRow(true);
                        if (selectedRowAffected)
                        {
                            RefreshGroupMembersPanel();
                        }
                    }
                });
                break;
            }
        }