2014-11-03 29 views
1

”中不存在名称“ChartPlotter”嗨我正在使用从codeplex.com/dynamicdatadisplay获得的动态数据显示库。复制到根目录下,并将对DynamicDataDisplay.dll文件DLL的引用添加到我的项目中,但xaml不能识别ChartPlotter,并且在名称空间“http://research.microsoft.com/DynamicDataDisplay/1.0”中不存在名称“ChartPlotter”。有谁知道有什么问题?命名空间“http://research.microsoft.com/DynamicDataDisplay/1.0

XAML:

<Window x:Class="WpfApplication3.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <d3:ChartPlotter Name="plotter" Margin="10,10,20,10"> 
      <d3:ChartPlotter.HorizontalAxis> 
       <d3:HorizontalDateTimeAxis Name="dateAxis"/> 
      </d3:ChartPlotter.HorizontalAxis> 
      <d3:ChartPlotter.VerticalAxis> 
       <d3:VerticalIntegerAxis Name="countAxis"/> 
      </d3:ChartPlotter.VerticalAxis> 

      <d3:Header FontFamily="Arial" Content="Bug Information"/> 
      <d3:VerticalAxisTitle FontFamily="Arial" Content="Count"/> 
      <d3:HorizontalAxisTitle FontFamily="Arial" Content="Date"/> 
     </d3:ChartPlotter> 
    </Grid> 
</Window> 

代码隐藏

using System; 
using System.Collections.Generic; 
using System.Windows; 
using System.Windows.Media; // Pen 

using System.IO; 
using Microsoft.Research.DynamicDataDisplay; // Core functionality 
using Microsoft.Research.DynamicDataDisplay.DataSources; // EnumerableDataSource 
using Microsoft.Research.DynamicDataDisplay.PointMarkers; // CirclePointMarker 

namespace WpfApplication3 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
      Loaded += new RoutedEventHandler(Window1_Loaded); 
     } 

     private void Window1_Loaded(object sender, RoutedEventArgs e) 
     { 
      List<BugInfo> bugInfoList = LoadBugInfo("..\\..\\BugInfo.txt"); 

      DateTime[] dates = new DateTime[bugInfoList.Count]; 
      int[] numberOpen = new int[bugInfoList.Count]; 
      int[] numberClosed = new int[bugInfoList.Count]; 

      for (int i = 0; i < bugInfoList.Count; ++i) 
      { 
       dates[i] = bugInfoList[i].date; 
       numberOpen[i] = bugInfoList[i].numberOpen; 
       numberClosed[i] = bugInfoList[i].numberClosed; 
      } 

      var datesDataSource = new EnumerableDataSource<DateTime>(dates); 
      datesDataSource.SetXMapping(x => dateAxis.ConvertToDouble(x)); 

      var numberOpenDataSource = new EnumerableDataSource<int>(numberOpen); 
      numberOpenDataSource.SetYMapping(y => y); 

      var numberClosedDataSource = new EnumerableDataSource<int>(numberClosed); 
      numberClosedDataSource.SetYMapping(y => y); 

      CompositeDataSource compositeDataSource1 = new 
       CompositeDataSource(datesDataSource, numberOpenDataSource); 
      CompositeDataSource compositeDataSource2 = new 
       CompositeDataSource(datesDataSource, numberClosedDataSource); 

      plotter.AddLineGraph(compositeDataSource1, 
       new Pen(Brushes.Blue, 2), 
       new CirclePointMarker { Size = 10.0, Fill = Brushes.Red }, 
       new PenDescription("Number bugs open")); 

      plotter.AddLineGraph(compositeDataSource2, 
       new Pen(Brushes.Green, 2), 
       new TrianglePointMarker 
       { 
        Size = 10.0, 
        Pen = new Pen(Brushes.Black, 2.0), 
        Fill = Brushes.GreenYellow 
       }, 
       new PenDescription("Number bugs closed")); 

      plotter.Viewport.FitToView(); 

     } // Window1_Loaded() 

     private static List<BugInfo> LoadBugInfo(string fileName) 
     { 
      var result = new List<BugInfo>(); 
      FileStream fs = new FileStream(fileName, FileMode.Open); 
      StreamReader sr = new StreamReader(fs); 

      string line = ""; 
      while ((line = sr.ReadLine()) != null) 
      { 
       string[] pieces = line.Split(':'); 
       DateTime d = DateTime.Parse(pieces[0]); 
       int numopen = int.Parse(pieces[1]); 
       int numclosed = int.Parse(pieces[2]); 
       BugInfo bi = new BugInfo(d, numopen, numclosed); 
       result.Add(bi); 
      } 
      sr.Close(); 
      fs.Close(); 
      return result; 
     } 

    } // class Window1 

    public class BugInfo 
    { 
     public DateTime date; 
     public int numberOpen; 
     public int numberClosed; 

     public BugInfo(DateTime date, int numberOpen, int numberClosed) 
     { 
      this.date = date; 
      this.numberOpen = numberOpen; 
      this.numberClosed = numberClosed; 
     } 

    } 
} // ns 

回答