У меня есть несколько простых форм в 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 обновятся.
- НАМЕА
- DescriptionA
- Боде
Но если я не внесу изменения в описание, тело не будет обновлено.
- NameAB
- DescriptionA
- BodyA (должен был быть BodyAB)
Если я только внесу изменения в тело, оно не обновляется.
Если я только внесу изменение в Имя, оно будет обновлено.
Это очень странное поведение. Прослеживая код через службу домена, я вижу, что измененная запись имеет правильные изменения - поскольку старая запись содержала только идентификатор, а все остальное было нулевым, это, вероятно, из-за конструкции, но я не трачу много времени на отладку служб домена слой. * +1032 *
Есть идеи?