Форма данных и набор инструментов NumericUpDown в Silverlight 5 не работают должным образом

Мы только что перенесли старое приложение 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?


person Myles J    schedule 04.04.2012    source источник


Ответы (1)


ОК, похоже, это на самом деле ошибка:

http://forums.silverlight.net/t/182569.aspx/1

Я исправил это, расширив элемент управления NumericUpDown, как описано здесь:

http://silverlight.codeplex.com/workitem/4633

Я уверен, что это должна быть ошибка, характерная для инструментария SL5.

person Myles J    schedule 04.04.2012
comment
На самом деле я думаю, что ошибка существовала и в наборе инструментов SL4. Причина, по которой мы не видели этого в приложении SL4, заключается в том, что мы всегда устанавливали фокус на первое поле во всплывающих окнах, как только они активировались. - person Myles J; 04.04.2012