Мы только что перенесли старое приложение Silverlight 4 на Silverlight 5 и заметили проблему с одной из наших форм данных. Рассматриваемая форма данных содержит элемент управления NumericUpDown из инструментария SL5. Мы заметили, что CommitEdit не срабатывает (т. е. возвращает false) в следующем сценарии:
1) Откройте всплывающее окно, содержащее форму данных.
2) Измените значение в элементе управления NumericUpDown, щелкнув стрелку вверх или вниз.
3) Нажмите кнопку «Сохранить», связанную с формой данных.
Код события Click, связанный с кнопкой «Сохранить», выглядит следующим образом:
private void OKButton_Click(object sender, RoutedEventArgs e)
{
if (updateUserDataForm.ValidateItem())
updateUserDataForm.CommitEdit(true);
else
updateUserDataForm.CancelEdit();
}
XAML — это:
<toolkit:DataField Label="Display Order" LabelStyle="{StaticResource LabelStyles}" HorizontalAlignment="Left">
<toolkit:NumericUpDown Minimum="1" Maximum="200" Value="{Binding DisplayOrder, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ValueChanged="NumericUpDown_ValueChanged"/>
</toolkit:DataField>
CommitEdit отлично работает, когда вы сначала даете другому элементу управления фокус формы, прежде чем нажимать кнопку «Сохранить». У нас никогда не было такого поведения, когда мы использовали элементы управления DatForm и NumericUpDown из инструментария SL 4. Это проблема, появившаяся в наборе инструментов SL5?