wpf - 如何将 XAML 绑定(bind)延迟到加载后

标签 wpf xaml binding

看看这个:

<ItemsControl ItemsSource="{x:Static local:Cache.Colors}" />

这将 ItemsControl 绑定(bind)到名为 List 的静态属性。在本例中,Colors 属性是名为 Cache 的类的一部分。

但是有一个问题。当您以这种方式绑定(bind)时,在应用程序中建立安全性之前,会在 Initialize 方法期间调用 Colors 属性。

由于安全性尚未建立,因此调用 Colors 会导致异常,因为安全性是成功调用数据服务的必要条件。

该解决方案将其从 XAML 移至代码隐藏,并确保它在 Loaded 事件中执行,而不是在初始化期间在构造函数中执行。

这里真正的问题是,我想在 XAML 中执行此操作。可能吗?

最佳答案

我通常通过绑定(bind) ItemsSource 来实现 INotifyCollectionChanged 来解决这个问题。界面。在初始化时,项目源将为空,然后在加载时填充项目源。项目源的填充会引发集合更改事件,导致您的项目控件在源中重新绑定(bind)/添加新项目。

关于wpf - 如何将 XAML 绑定(bind)延迟到加载后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499586/

相关文章:

c# - WPF WrapPanel 折叠顺序

c# - MVVM 如何将 ListBox SelectedItem 放入 ViewModel 中的类的实例中

wpf - 表格列宽和水平对齐方式

wpf - XAML 编辑选项

wpf - ComboBox SelectedItem 初始值不是来自 ItemsSource

wpf - 可为空的数据库属性,但删除内容时 texbox 仍显示红色边框

java - 将数组中的 BeanItemContainer 绑定(bind)到表

.net - 从 IValueConverter 获取对 ViewModel 的引用

wpf - AvalonDock 与 MVVM,文档关闭不会删除 DocumentsSource 中的项目

c# - xaml 特定的 StringFormat 绑定(bind)