我有一个使用 MVVM 模式的 WPF 应用程序,其中有许多 ObservableCollections。我没有将这些 ObservableCollections 放入每个 ViewModel 中,而是将它们放入一个名为 Observables 的静态类中,它是静态类 AppCommon 的成员。所以我可以通过 AppCommon.Observables.AnyObservableINeed 访问所有的 observable 集合。
现在我需要更改 UserControl 的绑定,以便它们绑定到这些全局 ObservableCollection,但我不知道如何在不更改 DataContext 的情况下引用这些 ObservableCollection。
我尝试添加命名空间
xmlns:globals="clr-namespace:Demirbaş.Globals"
然后在 ListBox 中设置 ItemsSource 属性,如
<ListBox ItemsSource="{Binding Source={globals:Observables.TaşınırSınıfları}}"
但这会给我以下错误:
'{globals:Observables.TaşınırSınıfları}' value is not a valid MarkupExtension expression. Cannot resolve 'Observables.TaşınırSınıfları' in namespace 'clr-namespace:Demirbaş.Globals'. 'Observables.TaşınırSınıfları' must be a subclass of MarkupExtension.
这里有什么问题?我是否使用正确的 XAML 语法绑定到这些集合?
编辑
ItemsSource="{Binding Source={x:Static globals:AppCommon.Observables.TaşınırSınıfları}}"
给我错误:
Cannot find the type 'AppCommon.Observables'. Note that type names are case sensitive.
我认为它不能引用嵌套类,对吗?解决方案是什么?
谢谢