2013-04-09 2 views
0

Есть что-то вроде команды txtBox.Text.Refesh() для Windows Phone?Обновить в silverlight кажется текстовое поле

+1

Примечание для тех, кто читает этот вопрос - это следующее из http://stackoverflow.com/questions/15441265/why-the-label-is-not-filled-in-for-with-thread. Один из ответов включает вызов «обновить» на элементе управления, чтобы обновить экран. Что Ivo действительно нужно сделать, это знать, как накачивать сообщения в приложении silverlight. Вероятно, дизайн является процедурным, а не управляемым событием, поэтому проблемы глубже, чем просто обработка полученных сообщений. –

+0

Вам действительно нужно изучить MVVM, если вы работаете с технологиями на основе XAML. Вы слишком далеко от правильного пути. И нет такой вещи, как «FrameworkElement.Refresh()». Гораздо меньше вы найдете метод 'Refresh()' в свойстве 'Text', который имеет тип' string'. –

+0

Как сказал @HighCore, если бы был метод Refresh, это не было бы для свойства Text. Свойства предназначены для чтения и записи данных в объект. –

ответ

0

Прежде чем дать свой ответ ... Как высказал HighCore в комментарии - , вы, вероятно, ошибаетесь - вам, вероятно, следует изменить, как вы работаете, чтобы больше соответствовать рамке. Тем не менее ..

Вы можете сделать это разными способами, но вот два довольно тривиальных.

  1. Вариант 1: причудливый способ.

Загрузите и установите асинхронный CTP. Это позволит вам использовать семантику async/wait.

ли что-то вроде этого:

async void Button_Click() 
{ 
for (int i = 0; i < 100; i++) 
{ 
textbox.Text = i.ToString(); 
await Task.Delay(1000); 
} 
} 
  1. Вариант 2: Good'ol путь.

Если вы не хотите, чтобы установить асинхронной CTP, реорганизовать свой код следующим образом:

void Button_Click() 
{ 
    int i = 0; 
    var t = new DispatcherTimer(); 
    t.Interval = TimeSpan.FromSeconds(1); 
    t.Tick += (s, e) => { textbox.Text = i.ToString; i++; if (i == 20) t.Stop(); }; 
    t.Start(); 
} 

Заметим, что, когда этот код работает, ваше приложение остается отзывчивым, что означает, что люди могут активируйте код, который вы не хотите.

Смежные вопросы