Эххх.... заставили все-таки посмотреть))
Итак, первое: вот тут вы использовали using
using (MainWindow view = new MainWindow())
{
WindowInteropHelper helper = new WindowInteropHelper(view);
helper.Owner = proc.MainWindowHandle;
view.DataContext = vm;
view.Show();
}
А в коде окна написали вот так:
public void Dispose()
{
this.Close();
}
Таким образом вызывается окно и тут-же закрывается
Поменял на ShowDialog() - смог хотя бы увидеть окно.
Далее: метод ваш вызывается и срабатывает. Единственное, что я поменял - заменил TaskDialog на MessageBox:
using (Transaction tr = new Transaction(doc))
{
tr.Start("TEST");
foreach (Element el in enumElements)
{
try
{
el.LookupParameter("Комментарии").Set("DASHOTAKOE");
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
tr.Commit();
}
Не знаю точно в чем взаимосвязь, но при использовании TaskDialog что-то шло не так. Но тут я могу ошибаться
Ну и самое главное - как вы хотели проверить работу, пытаясь записать в какой-то параметр TEST, которого скорее всего не существует? Еще и без проверки на null! Достаточно поставить один символ
? и сразу станет лучше:
el.LookupParameter("Комментарии")?.Set("DASHOTAKOE");