2012-01-14 88 views
0

我試圖做一個加載圖標在那裏,一旦你的圖標點擊,它會調用以下處理:強制刷新視圖?

private void refresh_btn_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
{ 
    refresh_btn.Visibility = System.Windows.Visibility.Collapsed; 
    loading_icon.Visibility = System.Windows.Visibility.Visible; 
    refreshMix(); 
} 

private void refreshMix() 
{ 
    ... 
    refresh_btn.Visibility = System.Windows.Visibility.Collapsed; 
    loading_icon.Visibility = System.Windows.Visibility.Visible; 
} 

然而,鑑於似乎並不自動重裝後,我改變圖標調用refreshMix()之前的可見性。有沒有辦法強制頁面重新加載?

+2

應該有無需刷新視圖,按鈕會自動成爲倒塌一旦線路被擊中。聽起來就像這條線沒有被達到。如果你在'refresh_btn_Tap'事件中放置了一個斷點,它會被擊中嗎? – keyboardP 2012-01-14 17:44:30

回答

1

你可能在UI線程中做了一些長時間的工作refreshMix(),對吧?在後臺線程中執行此操作,並且UI線程將自由更新頁面。

+0

好的,我會試試 – Jin 2012-01-14 18:01:55

0

在Silverlight中沒有頁面或視圖重新加載的概念。當您更改任何視覺元素的屬性時,這將在下次渲染時反映在屏幕上。

1

你需要一套前可見倒塌:

control.Visibility = System.Windows.Visibility.Collapsed; 
control.Visibility = System.Windows.Visibility.Visible;