private void AddAssembly_OnClick(object sender, RoutedEventArgs e)
        {
            // Configure open file dialog box.
            OpenFileDialog dlg = new OpenFileDialog {
                DefaultExt = ".dll", Filter = "Assemblies (.dll)|*.dll"
            };

            // Show open file dialog box.
            bool?result = dlg.ShowDialog();

            // Process open file dialog box results
            if (result != true)
            {
                return;
            }

            // Add assembly to project.
            ProjectSettings projectSettings = (ProjectSettings)this.DataContext;
            Assembly        assembly        = Assembly.LoadFile(dlg.FileName);

            try
            {
                projectSettings.AddAssembly(assembly);

                // Refresh list.
                this.AssembliesList.Items.Refresh();
            }
            catch (ReflectionTypeLoadException ex)
            {
                EditorDialog.Error(
                    "Error adding assembly",
                    string.Format(
                        "An error has occurred adding assembly {0}: {1}", dlg.FileName, ex.LoaderExceptions[0]));

                // TODO(np): Beautifully handle the error and prevent the crash.
                projectSettings.RemoveAssembly(assembly);
            }
        }