Wpf 数据绑定到全局ObservableCollection

Wpf 数据绑定到全局ObservableCollection,wpf,data-binding,mvvm,observablecollection,Wpf,Data Binding,Mvvm,Observablecollection,我有一个使用MVVM模式的WPF应用程序,其中有许多可观察的集合。我没有将这些ObservableCollections放入每个ViewModel中,而是将它们放入一个名为Observables的静态类中,该类是静态类AppCommon的一个成员。所以我可以通过AppCommon.Observables.AnyObservabled访问所有可观察的集合 现在我需要更改UserControl的绑定,以便它们绑定到这些全局ObservableCollection,但我不知道如何在不更改DataCon

我有一个使用MVVM模式的WPF应用程序,其中有许多可观察的集合。我没有将这些ObservableCollections放入每个ViewModel中,而是将它们放入一个名为Observables的静态类中,该类是静态类AppCommon的一个成员。所以我可以通过AppCommon.Observables.AnyObservabled访问所有可观察的集合

现在我需要更改UserControl的绑定,以便它们绑定到这些全局ObservableCollection,但我不知道如何在不更改DataContext的情况下引用这些ObservableCollection

我尝试添加名称空间,比如

xmlns:globals="clr-namespace:Demirbaş.Globals"
然后在列表框中设置ItemsSource属性,如

<ListBox ItemsSource="{Binding Source={globals:Observables.TaşınırSınıfları}}"
这里有什么问题?我是否使用正确的XAML语法绑定到这些集合

编辑
ItemsSource=“{Binding Source={x:Static globals:AppCommon.observates.TaşnırSınıfları}}”
给我错误:

Cannot find the type 'AppCommon.Observables'. Note that type names are case sensitive.
我认为它不能引用嵌套类,对吗?解决办法是什么

谢谢

您需要使用注释中建议的标记扩展(如LPL)来告诉WPF它是一个静态对象

<ListBox ItemsSource="{Binding 
    Source={x:Static globals:Observables.TaşınırSınıfları}}" />

您需要使用注释中建议的标记扩展(如LPL)来告诉WPF它是一个静态对象

<ListBox ItemsSource="{Binding 
    Source={x:Static globals:Observables.TaşınırSınıfları}}" />

我不知道您的应用程序的名称空间,但请尝试

xmlns:local="clr-namespace:Demirbaş"

<ListBox ItemsSource="{Binding 
    Source={x:Static local:AppCommon+Observables.TaşınırSınıfları}}" />
xmlns:local=“clr名称空间:Demirbaş”

我不知道您的应用程序的名称空间,但请尝试

xmlns:local="clr-namespace:Demirbaş"

<ListBox ItemsSource="{Binding 
    Source={x:Static local:AppCommon+Observables.TaşınırSınıfları}}" />
xmlns:local=“clr名称空间:Demirbaş”

当命名空间引用未完全限定且目标绑定存在于另一个程序集中时,也可能发生此错误

例如,
xmlns:l=“clr命名空间:AssemblyA.namespace;assembly=AssemblyA”。


如果未指定特定程序集,则会显示相同的错误消息“value不是有效的MarkupExtension表达式”。

当命名空间引用未完全限定且目标绑定存在于另一个程序集中时,也会发生此错误

例如,
xmlns:l=“clr命名空间:AssemblyA.namespace;assembly=AssemblyA”。


如果未指定特定程序集,将显示相同的错误消息“值不是有效的MarkupExtension表达式”。

使用。您可以检查我的编辑吗?使用。您可以检查我的编辑吗?@ArifMertAkçakaya An
x:Static
源必须采用
命名空间:ClassName.Property
的形式。您不能使用
名称空间:ClassName.Property.Property
@ArifMertAkçakaya
x:Static
源必须采用
名称空间:ClassName.Property
的形式。您不能有
命名空间:ClassName.Property.Property