#wcf #silverlight #service #ria
#wcf #silverlight #Обслуживание #ria
Вопрос:
У меня есть несколько простых форм в silverlight 4, использующих доменные службы WCF RIA RC2.
Похоже, что все мои формы работают отлично, я использовал традиционный код для детального управления и форматирования.
Проблема, с которой я сталкиваюсь, заключается в том, что в одной конкретной форме данные не обновляются, пока я не обновлю одно из других полей.
Вот мой код.
void ConfirmSave_Closed(object sender, EventArgs e)
{
if ((bool)ConfirmSave.DialogResult)
{
_New = false;
tblEmailTemplate Selected = (tblEmailTemplate)lstEmailTemplates.SelectedItem;
Selected.Name = txtName.Text;
Selected.Description = txtDescription.Text;
Selected.Body = txtBody.Text;
Selected.ModifiedBy = Security.DomainUserName;
Selected.ModifiedOn = DateTime.Now;
Selected.Body = txtBody.Text;
DataStore.SubmitChanges();
Dialogs.ConfirmationDialog Added = new Dialogs.ConfirmationDialog(Selected.Name " has been saved.", "Email Template Saved");
Added.Show();
lstEmailTemplates.ItemsSource = DataStore.tblEmailTemplates;
lstEmailTemplates.DisplayMemberPath = "Name";
}
}
Если я ввожу изменение, допустим, добавляю ‘A’ к каждому полю, имени, описанию, телу — все 3 обновляются.
- Имя
- Описаниеа
- Бодя
Но если я не внесу изменения в описание, тело не обновляется.
- NameAB
- Описаниеа
- bodyA (должно было быть BodyAB)
Если я только внесу изменения в тело, оно не будет обновлено. Если я только внесу изменение в Name, оно будет обновлено.
Это очень странное поведение. Прослеживая код вниз через службу домена, я вижу измененную запись с правильными изменениями — что касается старой записи, то она просто содержала идентификатор, а все остальное было нулевым, вероятно, это сделано специально, но я не трачу много времени на отладку уровня служб домена.
Есть идеи?
Ответ №1:
У меня была подобная ошибка с флажками в RC1, эта ошибка была фактически в измененном коде выбора. Веская причина для принятия методов привязки данных, предлагаемых RIA.