I have recently discovered the Modern UI (Metro) Charts on CodePlex which looks to be truly excellent, and exactly what I'm looking for to complete this project.
我最近在CodePlex上发现了现代UI(Metro)图表,它看起来非常出色,正是我正在寻找的完成这个项目。
https://modernuicharts.codeplex.com/documentation
As I don't write C#, however, I rely on online converters in situations like this - they are normally very effective, but I can't seem to get this code to work. Can anyone point me in the direction of the necessary amendments? Many Thanks!
但是,由于我不编写C#,我在这种情况下依赖于在线转换器 - 它们通常非常有效,但我似乎无法使这些代码工作。有人能指出我必要的修正方向吗?非常感谢!
C# Code:
namespace TestApplication
{
// bind this view model to your page or window (DataContext)
public class TestPageViewModel
{
public ObservableCollection<TestClass> Errors { get; private set; }
public TestPageViewModel()
{
Errors = new ObservableCollection<TestClass>();
Errors.Add(new TestClass() { Category = "Globalization", Number = 75 });
Errors.Add(new TestClass() { Category = "Features", Number = 2 });
Errors.Add(new TestClass() { Category = "ContentTypes", Number = 12 });
Errors.Add(new TestClass() { Category = "Correctness", Number = 83});
Errors.Add(new TestClass() { Category = "Best Practices", Number = 29 });
}
private object selectedItem = null;
public object SelectedItem
{
get
{
return selectedItem;
}
set
{
// selected item has changed
selectedItem = value;
}
}
}
// class which represent a data point in the chart
public class TestClass
{
public string Category { get; set; }
public int Number { get; set; }
}
}
VB.NET Translation:
Public Class TestPageViewModel
Public Property Errors() As ObservableCollection(Of TestClass)
Get
Return m_Errors
End Get
Private Set
m_Errors = Value
End Set
End Property
Private m_Errors As ObservableCollection(Of TestClass)
Public Sub New()
Errors = New ObservableCollection(Of TestClass)()
Errors.Add(New TestClass() With { _
Key .Category = "Globalization", _
Key .Number = 75 _
})
Errors.Add(New TestClass() With { _
Key .Category = "Features", _
Key .Number = 2 _
})
Errors.Add(New TestClass() With { _
Key .Category = "ContentTypes", _
Key .Number = 12 _
})
Errors.Add(New TestClass() With { _
Key .Category = "Correctness", _
Key .Number = 83 _
})
Errors.Add(New TestClass() With { _
Key .Category = "Best Practices", _
Key .Number = 29 _
})
End Sub
Private m_selectedItem As Object = Nothing
Public Property SelectedItem() As Object
Get
Return m_selectedItem
End Get
Set
' selected item has changed
m_selectedItem = value
End Set
End Property
End Class
Errors:
Error 2 Name of field or property being initialized in an object initializer must start with '.'. C:\Users\Major\documents\visual studio 2013\Projects\WpfApplication3\WpfApplication3\pModernChart.xaml.vb 17 4 WpfApplication3
Warning 1 'Public Sub New()' in designer-generated type 'WpfApplication3.pModernChart' should call InitializeComponent method. C:\Users\Major\documents\visual studio 2013\Projects\WpfApplication3\WpfApplication3\pModernChart.xaml.vb 14 16 WpfApplication3
Error 1 Type 'ObservableCollection' is not defined. C:\Users\Major\documents\visual studio 2013\Projects\WpfApplication3\WpfApplication3\pModernChart.xaml.vb 2 33 WpfApplication3
2 个解决方案
#1
3
- Remove all the
Key
which belong to anonymous-types not concrete types likeTestClass
. - add
Imports System.Collections.ObjectModel
(VS tells you that if you hover the error)
删除所有属于匿名类型的Key,而不是像TestClass这样的具体类型。
添加Imports System.Collections.ObjectModel(VS告诉你,如果你将错误悬停)
Public Class TestPageViewModel
Public Property Errors() As ObservableCollection(Of TestClass)
Get
Return m_Errors
End Get
Private Set(value As ObservableCollection(Of TestClass))
m_Errors = value
End Set
End Property
Private m_Errors As ObservableCollection(Of TestClass)
Public Sub New()
Errors = New ObservableCollection(Of TestClass)()
Errors.Add(New TestClass() With {
.Category = "Globalization",
.Number = 75
})
Errors.Add(New TestClass() With {
.Category = "Features",
.Number = 2
})
Errors.Add(New TestClass() With {
.Category = "ContentTypes",
.Number = 12
})
Errors.Add(New TestClass() With {
.Category = "Correctness",
.Number = 83
})
Errors.Add(New TestClass() With {
.Category = "Best Practices",
.Number = 29
})
End Sub
Private m_selectedItem As Object = Nothing
Public Property SelectedItem() As Object
Get
Return m_selectedItem
End Get
Set(value As Object)
' selected item has changed '
m_selectedItem = value
End Set
End Property
End Class
With Key
you can specify which propertis are used to determine if two anonymous types are equal and which are used in the compiler-generated hash code algorithm. In C# all properties are used automatically and you cannot change it.
使用Key,您可以指定使用哪些属性来确定两个匿名类型是否相等以及哪些属性在编译器生成的哈希代码算法中使用。在C#中,所有属性都会自动使用,您无法更改它。
#2
1
Tim Schmelter solved your first problem.
Tim Schmelter解决了你的第一个问题。
For the last error you need the proper namespace
对于最后一个错误,您需要正确的命名空间
Imports System.Collections.ObjectModel
#1
3
- Remove all the
Key
which belong to anonymous-types not concrete types likeTestClass
. - add
Imports System.Collections.ObjectModel
(VS tells you that if you hover the error)
删除所有属于匿名类型的Key,而不是像TestClass这样的具体类型。
添加Imports System.Collections.ObjectModel(VS告诉你,如果你将错误悬停)
Public Class TestPageViewModel
Public Property Errors() As ObservableCollection(Of TestClass)
Get
Return m_Errors
End Get
Private Set(value As ObservableCollection(Of TestClass))
m_Errors = value
End Set
End Property
Private m_Errors As ObservableCollection(Of TestClass)
Public Sub New()
Errors = New ObservableCollection(Of TestClass)()
Errors.Add(New TestClass() With {
.Category = "Globalization",
.Number = 75
})
Errors.Add(New TestClass() With {
.Category = "Features",
.Number = 2
})
Errors.Add(New TestClass() With {
.Category = "ContentTypes",
.Number = 12
})
Errors.Add(New TestClass() With {
.Category = "Correctness",
.Number = 83
})
Errors.Add(New TestClass() With {
.Category = "Best Practices",
.Number = 29
})
End Sub
Private m_selectedItem As Object = Nothing
Public Property SelectedItem() As Object
Get
Return m_selectedItem
End Get
Set(value As Object)
' selected item has changed '
m_selectedItem = value
End Set
End Property
End Class
With Key
you can specify which propertis are used to determine if two anonymous types are equal and which are used in the compiler-generated hash code algorithm. In C# all properties are used automatically and you cannot change it.
使用Key,您可以指定使用哪些属性来确定两个匿名类型是否相等以及哪些属性在编译器生成的哈希代码算法中使用。在C#中,所有属性都会自动使用,您无法更改它。
#2
1
Tim Schmelter solved your first problem.
Tim Schmelter解决了你的第一个问题。
For the last error you need the proper namespace
对于最后一个错误,您需要正确的命名空间
Imports System.Collections.ObjectModel