【发布时间】:2011-09-23 21:11:36
【问题描述】:
看看这个:
<ItemsControl ItemsSource="{x:Static local:Cache.Colors}" />
这会将 ItemsControl 绑定到名为 List 的静态属性。在这种情况下,Colors 属性是名为 Cache 的类的一部分。
但是有一个问题。当您以这种方式绑定时,Colors 属性会在 Initialize 方法期间被调用,在应用程序中建立安全之前。
由于尚未建立安全性,因此调用颜色会导致异常,因为安全性是成功调用数据服务的必要条件。
该解决方案将其从 XAML 移至代码后面,并确保它在 Loaded 事件中执行,而不是在 Initialize 期间在构造函数中执行。
这里真正的问题是,我想在 XAML 中执行此操作。有可能吗?
【问题讨论】:
-
为什么不能在打开窗口之前或者在窗口的构造函数中调用
InitializeComponent()之前“初始化安全”? -
这是主窗口。我想我可以创建 PreMainWindow。
-
那又怎样?您可以在 App.xaml 中拥有在创建窗口之前调用的代码,或者在实际读取 XAML 之前在 MainWindow 的构造函数中拥有代码。