首先,我不得不说所有这些在 .NET 4.0 上已经完美运行了!
现在切换到 .NET 4.5(甚至是安装了 .NET 4.5 的 .NET 4.0),在 ListBox.DataContext 我得到一个XamlParseException.InnerException: System.InvalidOperationException "Binding.StaticSource cannot be set while using Binding.Source"
我将 NavigationController 实现为单例,向列表提供一些数据。单例实例是通过表示单例的Instance属性的 ObjectDataProvider 提供的。
<UserControl x:Class="UI.WPF.Reuse.Navigation.NavigationView"
xmlns:n="clr-namespace:UI.WPF.Reuse.Navigation"
...>
<UserControl.Resources>
<ObjectDataProvider x:Key="NavigationController" ObjectInstance="{x:Static Member=n:NavigationController.Instance}" />
...
</UserControl.Resources>
<!-- On property DataContext: InvalidOperationException "Binding.StaticSource cannot be set while using Binding.Source" -->
<ListBox DataContext="{Binding Source={StaticResource NavigationController}, Path=(n:NavigationController.CurrentViewModel)}"
ItemsSource="{Binding Path=(n:NavigationViewModel.SubScreens)}"
...
>
...
那么,在 .NET 4.5 中绑定到单例属性的合适构造是什么?到目前为止,我的实验没有成功...