多くの ObservableCollections がある MVVM パターンを使用する WPF アプリケーションがあります。これらの ObservableCollection を各 ViewModel に配置する代わりに、静的クラス AppCommon のメンバーである Observables という静的クラスに配置しました。したがって、AppCommon.Observables.AnyObservableINeed を介してすべての監視可能なコレクションにアクセスできます。
ここで、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 構文を使用していますか?
EDIT
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.
ネストされたクラスを参照できないと思いますが、そうですか? 解決策は何ですか?
ありがとう