Inheritance: System.Windows.Controls.ChildWindow
        private void AddMetadataButton_Click(object sender, RoutedEventArgs e)
        {
            EditMetadataDialog addMetadataDialog = new EditMetadataDialog();

            addMetadataDialog.Closed += new EventHandler(AddMetadataDialog_Closed);
            addMetadataDialog.Show();
        }
        private void EditMetadataButton_Click(object sender, RoutedEventArgs e)
        {
            MetadataViewModel selectedMetadata = NodeMetadataDataGrid.SelectedItem as MetadataViewModel;

            if (selectedMetadata != null)
            {
                EditMetadataDialog editMetadataDialog = new EditMetadataDialog();
                editMetadataDialog.Closed         += new EventHandler(EditMetadataDialog_Closed);
                editMetadataDialog.MetadataTypeUid = selectedMetadata.MetadataTypeUid;
                editMetadataDialog.Value           = selectedMetadata.MetadataValue;
                editMetadataDialog.MetadataName    = selectedMetadata.MetadataName;
                editMetadataDialog.Show();
            }
        }
        private void EditMetadataDialog_Closed(object sender, EventArgs e)
        {
            MetadataViewModel  selectedMetadata = NodeMetadataDataGrid.SelectedItem as MetadataViewModel;
            EditMetadataDialog dialog           = sender as EditMetadataDialog;

            if (dialog != null && dialog.DialogResult.Value == true)
            {
                selectedMetadata.MetadataValue   = dialog.Value;
                selectedMetadata.MetadataTypeUid = dialog.MetadataTypeUid;
                if (!IsEqualToOriginal(selectedMetadata))
                {
                    _changes[selectedMetadata.OriginalMetadataName.ToLower()] = true;
                }
            }
        }
        private void AddMetadataDialog_Closed(object sender, EventArgs e)
        {
            EditMetadataDialog dialog = sender as EditMetadataDialog;

            if (dialog != null && dialog.DialogResult.Value == true)
            {
                //only allow a key to go into the properties once
                if (!_changes.ContainsKey(dialog.MetadataName.ToLower()))
                {
                    MetadataContext newContext = new MetadataContext();
                    newContext.MetadataName = dialog.MetadataName;
                    newContext.NodeUid      = NodeProxy.Id;
                    SoapMetadata metadata = new SoapMetadata();
                    metadata.MetadataName = dialog.MetadataName;
                    TypeManager          typeManager   = IoC.IoCContainer.GetInjectionInstance().GetInstance <TypeManager>();
                    IMetadataTypeProxy[] metaDataTypes = typeManager.GetAllMetadataTypes();
                    foreach (IMetadataTypeProxy metadataType in metaDataTypes)
                    {
                        if (metadataType.Id == dialog.MetadataTypeUid)
                        {
                            SoapMetadataType soapMetadataType = new SoapMetadataType();
                            soapMetadataType.Id   = metadataType.Id;
                            soapMetadataType.Name = metadataType.Name;
                            metadata.MetadataType = soapMetadataType;
                            break;
                        }
                    }
                    metadata.MetadataValue = dialog.Value;

                    MetadataViewModel newData = new MetadataViewModel(newContext, metadata);
                    _changes[newData.OriginalMetadataName.ToLower()] = true;
                    _metadata.Add(newData);
                    _metadataNames.Add(newData.MetadataName);
                    newData.PropertyChanged += new PropertyChangedEventHandler(model_PropertyChanged);
                }
                else
                {
                    MessageBox.Show("Metadata could not be added because the property name already existed", "Error Adding Metadata", MessageBoxButton.OK);
                }
            }
        }
 private void EditMetadataButton_Click(object sender, RoutedEventArgs e)
 {
     MetadataViewModel selectedMetadata = NodeMetadataDataGrid.SelectedItem as MetadataViewModel;
     if (selectedMetadata != null)
     {
         EditMetadataDialog editMetadataDialog = new EditMetadataDialog();
         editMetadataDialog.Closed += new EventHandler(EditMetadataDialog_Closed);
         editMetadataDialog.MetadataTypeUid = selectedMetadata.MetadataTypeUid;
         editMetadataDialog.Value = selectedMetadata.MetadataValue;
         editMetadataDialog.MetadataName = selectedMetadata.MetadataName;
         editMetadataDialog.Show();
     }
 }
 private void AddMetadataButton_Click(object sender, RoutedEventArgs e)
 {
     EditMetadataDialog addMetadataDialog = new EditMetadataDialog();
     addMetadataDialog.Closed += new EventHandler(AddMetadataDialog_Closed);
     addMetadataDialog.Show();
 }