在我的構造我的Silverlight 4頁,我打電話的InitializeComponent,之後緊接着就是這樣的說法:是Silverlight中的InitializeComponent異步
OriginalDefaultCharts = new Dictionary<Chart, string>{
{ chartTop, ((ComboBoxItem) comboInstant.SelectedItem).Tag.ToString () },
{ chartBottom, ((ComboBoxItem) comboCumulative.SelectedItem).Tag.ToString () } };
這幾乎總是工作,但有時,這種說法將拋出一個空例外,因爲comboCumulative一片空白。
我看到哪裏comboCumulative在InitializeComponent中實例化,但由於這通常有效,但並非總是如此,它使我認爲有些事情我應該等待。將InitializeComponent之後的所有構造函數邏輯放入Loaded事件是否是典型的?
我做到了,但由於我的代碼之前很少失敗,所以我不能100%確定我已經解決了這個問題。
何時可以確定所有組件都已實例化? – 2013-02-12 14:13:46
在加載的事件中,如果所有UI元素都可見,否則沒有直接的方法來知道它,只能確保等待每個UI組件的加載事件。 – Ouarzy 2013-02-12 14:37:57