将数据绑定到 UWP WinRT_XamlToolKit_Chart



我正在尝试使用 WinRT_XamlToolkit_Chart 库从 UWP 程序中的数据模板加载图表。 我正在使用 {绑定属性} 语法绑定图表标题和数据,但它没有将属性作为图表对象的数据成员加载。 我已经包括了我的两个 XAML

<Charting:Chart HorizontalAlignment="Center" 
                VerticalAlignment="Center" 
                Width="600" 
                Height="400" 
                DataContext="{Binding}"
                Title="{Binding Title}">
    <Charting:LineSeries Title="{Binding Title}" 
                         Margin="0" 
                         IndependentValuePath="Name" 
                         DependentValuePath="Amount" 
                         IsSelectionEnabled="True" 
                         ItemsSource="{Binding Data}"
                         />
</Charting:Chart>

C# 对象

public class DataChartNode : ExperimentNode
{
    public DataChartNode(String title, String type)
    {
        Type = type;
        Title = title;
        Category = "Data Analysis";
    }
    public DataChartNode(String type)
    {
        Type = type;
        Category = "Data Analysis";
        Name = type;
        Title = "Hello";
        Length = 0;
        Data = new List<DataPoint>();
    }
    public DataChartNode() { }
    public string Type { set; get; }
    public string Title { set; get; }
    public int Length { set; get; }
    public List<DataPoint> Data { set; get; }
}

由于您没有提供 DataPoint 类,也没有演示如何生成绑定到 Chart 控件的数据源,因此我编写了一个简单的演示,该演示创建了背后的数据源,该代码可以很好地与可以引用的 XAML 代码段配合使用。

XAML 代码(与你相同(

<Charting:Chart
    Title="{Binding Title}"
    Width="600"
    Height="400"
    HorizontalAlignment="Center"
    VerticalAlignment="Center"
    DataContext="{Binding}">
    <Charting:LineSeries
        Title="Title"
        Margin="0"
        DependentValuePath="Amount"
        IndependentValuePath="Name"
        IsSelectionEnabled="True"
        ItemsSource="{Binding Data}" />
</Charting:Chart>

代码隐藏

public sealed partial class MainPage : Page
{
    private Random _random = new Random();
    public MainPage()
    {
        this.InitializeComponent();
        var data = new List<DataPoint>();         
        for (int i = 0; i < 3; i++)
        {
            data.Add(new DataPoint { Name = "Name" + i, Amount = _random.Next(10, 100) });              
        }
        DataChartNode charnode = new DataChartNode()
        {
            Title = "Hello",
            Data = data
        };          
        this.DataContext = charnode;     
    }
}
public class DataChartNode
{
    public string Type { set; get; }
    public string Title { set; get; }
    public int Length { set; get; }
    public List<DataPoint> Data { set; get; }
}
public class DataPoint
{
    public string Name { get; set; }
    public int Amount { get; set; }      
}

请检查您的代码隐藏,以查找是否有任何问题。

最新更新