在我的 Silverlight 4 页面的构造函数中,我调用 InitializeComponent,紧接着是以下语句:
OriginalDefaultCharts = new Dictionary<Chart, string>{
{ chartTop, ( ( ComboBoxItem ) comboInstant.SelectedItem ).Tag.ToString ( ) },
{ chartBottom, ( ( ComboBoxItem ) comboCumulative.SelectedItem ).Tag.ToString ( ) } };
这几乎总是有效,但偶尔,此语句会抛出 Null 异常,因为 comboCumulative 为 null。
我看到在 InitializeComponent 中实例化了 comboCumulative 的位置,但由于这通常有效但并非总是如此,这让我觉得我应该等待一些东西。将 InitializeComponent 之后的所有构造函数逻辑放入 Loaded 事件中是否很典型?
我这样做了,但是由于我的代码以前很少失败,所以我不能 100% 确定我已经解决了这个问题。