Как программно аннулировать вложенный файл в формах InfoPath

У меня возникла проблема с некоторым кодом InfoPath C# при попытке удалить вложение из формы.

В основном процесс таков:

  1. Пользователь открывает форму
  2. Пользователь нажимает кнопку
  3. Вложенный файл удален

Я попытался добавить в свою схему пустое вложение, которое никогда не заполняется, а затем установить значение исходного поля, равное этому значению, с помощью метода, описанного ниже. При отладке формы я ловлю ошибку: проверка схемы обнаружила ошибки, отличные от типа данных. Любые советы здесь будут оценены.

public void BTN_ClearAttachment_Clicked(object sender, ClickedEventArgs e)
{
   try
   {
       _OriginalAttachment.SetValue(_BLANK_ATTACHMENT.Value);
   }
   catch (Exception ex)
   {
       _ErrorField.SetValue(ex.Message + " : " + ex.StackTrace);
   }
}

Спасибо,

Dr Z

Редактировать - P.S. Я должен уточнить, что оба _OriginalAttachment и _ErrorField являются XPathNavigators, указывающими на разные элементы схемы. Я проверил, что оба этих XPathNavigator указывают на допустимые элементы схемы.


person DoctorZinda    schedule 22.02.2010    source источник


Ответы (1)


Догадаться. Я сделал это так, чтобы вызвать ReplaceSelf(string) и передать пустую версию узла XML.

public void BTN_ClearAttachment_Clicked(object sender, ClickedEventArgs e)
{
   try
   {
       _OriginalAttachment.ReplaceSelf("<my:OriginalAttachment></my:OriginalAttachment>");
   }
   catch (Exception ex)
   {
       _ErrorField.SetValue(ex.Message + " : " + ex.StackTrace);
   }
}

Это устранило любые ошибки, с которыми я сталкивался.

person DoctorZinda    schedule 25.03.2010