WPFtoolkit与.Net 4.5兼容吗?

时间:2014-09-22 02:56:50

标签: wpf charts .net-4.5 data-visualization wpftoolkit

运行应用程序时出现此错误。

XmlParseException Occured 无法加载文件或程序集System.Windows.Controls.DataVisualization.Toolkit,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。系统找不到指定的文件

XAML

<UserControl x:Class="myNamespace.Views.ChartView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:chart="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d">
<Grid>
    <Label Margin="10" Content="Scatter series" />
    <chart:ScatterSeries DependentValueBinding="{Binding Value}"
                         IndependentValueBinding="{Binding Key}"
                         ItemsSource="{Binding PlotValues}" />
</Grid>

ViewModel:

 public ObservableCollection<KeyValuePair<double, double>> PlotValues
    {
        get { return _plotValues; }
        set { _plotValues = value; }
    }

XAML

1 个答案:

答案 0 :(得分:1)

认为您的问题与Visual Studio或MSBuild中的依赖项检测的问题/错误有关(可以找到相关的错误here)。

通过执行以下操作,我已经能够重现您的问题:

  • 创建新的WPF应用程序
  • 创建新的UserControl库
  • 在UserControl库上安装System.Windows.Controls.DataVisualization.Toolkit NuGet包( WPF应用程序)
  • 添加散子系列
  • 将包含分散系列的自定义用户控件添加到主窗口并运行应用程序

问题似乎是在代码中没有任何引用(在XAML之外),Visual Studio假定您没有使用程序集,因此不会将其复制到引用它的主应用程序/项目的输出目录中。更多细节可以找到here,虽然这些是普通代码中的引用(C#,而不是XAML)。

有三种解决方法似乎使Visual Studio检测到我所知道的依赖关系:

  1. 为控件命名,任何名称都可以(我的首选解决方案)
  2. 向控制库中的控制器添加C#代码引用(虚拟代码)
  3. 将NuGet或.dll引用添加到运行的实际应用程序
  4. 在我自己努力解决相同问题几个小时之后,我相信已经发现Visual Studio无法直接在XAML 中使用单个用法来检测对dll的依赖代码引用(或名称,为您创建代码引用,允许您在代码隐藏中访问控制器)。

    编辑: 我已通过Connect向Microsoft报告了此问题,因此希望能够解决此问题。