2

首先,我不得不说所有这些在 .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 中绑定到单例属性的合适构造是什么?到目前为止,我的实验没有成功...

4

0 回答 0