Я не уверен, что правильно понял проблему.Текст "Поиск ..." не отображается?Линия
// Of course this not work
Search1.Text = ""
не работает?(Почему вы пишете «Конечно, это не работает»? Почему бы это не сработало?)
Я не понимаю, почему вы меняете текст на «Поиск ...» в фоновом потоке.Вы можете сделать это в потоке пользовательского интерфейса и сделать трудоемкой работу в фоновом потоке, что-то вроде этого (я переключился на использование ThreadPool):
private void btnSearch_Tap( object sender, GestureEventArgs e )
{
Search1.Text = "Searching..."
ThreadPool.QueueUserWorkItem(p =>
{
Procedures[] results = CSDatabase.RunQuery<Procedures>( @"select Code, Description from tblLibraries where Description like '%" +
textBox1.Text + "%' or Code like '%" + textBox1.Text + "%'" );
// Dispatch manipulation of UI elements:
Dispatcher.BeginInvoke( () =>
{
this.MyListBox.ItemsSource = results;
Search1.Text = "";
} );
} ) ;
}
Вы всегда должны манипулировать элементами интерфейсаиз потока пользовательского интерфейса (в котором выполняется обработчик событий), и вы должны выполнять трудоемкую работу в фоновом потоке.