在我的构造我的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