public object AddElement()
 {
     var dto = new AttributionRuleDTO() { RuleName = "New Attribution Rule", Value = 1, Target = "-" };
     var dialog = new AddOrEditAttributionRuleForm(this, dto);
     dialog.ShowDialog(_parent);
     return dialog.AddedObject;
 }
        public IEnumerable<object> EditElements(IEnumerable<object> elementsToEdit)
        {
            List<object> result = new List<object>();
            foreach (var dto in elementsToEdit.Cast<ObjectView<AttributionRuleDTO>>().Select(v => v.Object))
            {
                try
                {
                    var dialog = new AddOrEditAttributionRuleForm(this, dto);
                    dialog.ShowDialog(_parent);
                    if (dialog.AddedObject!=null)
                        result.Add(dialog.AddedObject);
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            return result;
        }