C# 绑定线性轴间隔WPF工具包图表
我在C# 绑定线性轴间隔WPF工具包图表,c#,wpf,C#,Wpf,我在XAML文件中有一个chartingToolKit,我想在XAML文件中动态设置LinearAxis的间隔,而不是静态设置。我现在就是这样做的: <chartingToolkit:ColumnSeries.DependentRangeAxis> <chartingToolkit:LinearAxis FontSize="15" Foreground="Black" Interval="1" Minimum="0" Orientation="Y" ShowGridL
XAML
文件中有一个chartingToolKit
,我想在XAML
文件中动态设置LinearAxis
的间隔,而不是静态设置。我现在就是这样做的:
<chartingToolkit:ColumnSeries.DependentRangeAxis>
<chartingToolkit:LinearAxis FontSize="15" Foreground="Black" Interval="1" Minimum="0" Orientation="Y" ShowGridLines="False" />
</chartingToolkit:ColumnSeries.DependentRangeAxis>
但这似乎不能正常工作。我怎样才能做到这一点
非常感谢 我认为这只是因为datacontext没有设置在您拥有属性“ChartingInterval”的对象上 您只需将其设置为以下内容:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:chartingToolkit="..."
Title="MainWindow" Height="350" Width="525"
DataContext="{Binding RelativeSource={RelativeSource Mode=Self}}">
...
<chartingToolkit:ColumnSeries.DependentRangeAxis>
<chartingToolkit:LinearAxis FontSize="15" Foreground="Black" Interval="{Binding ChartingInterval}" Minimum="0" Orientation="Y" ShowGridLines="False" />
</chartingToolkit:ColumnSeries.DependentRangeAxis>
...
</Window>
...
...
您应该实现INotifyPropertyChanged,以允许属性通知绑定其值已更改,以便绑定将更新目标值
对不起,我说的是英语我想这仅仅是因为您的datacontext没有设置在您拥有属性“ChartingInterval”的对象上 您只需将其设置为以下内容:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:chartingToolkit="..."
Title="MainWindow" Height="350" Width="525"
DataContext="{Binding RelativeSource={RelativeSource Mode=Self}}">
...
<chartingToolkit:ColumnSeries.DependentRangeAxis>
<chartingToolkit:LinearAxis FontSize="15" Foreground="Black" Interval="{Binding ChartingInterval}" Minimum="0" Orientation="Y" ShowGridLines="False" />
</chartingToolkit:ColumnSeries.DependentRangeAxis>
...
</Window>
...
...
您应该实现INotifyPropertyChanged,以允许属性通知绑定其值已更改,以便绑定将更新目标值
对不起,我的英文是这是我在C#中为一个系列线动态重置图表的代码。只需将
LineSeries
替换为ColumnSeries
,并删除不需要的行即可。将DataContext
名称替换为您的名称,该样式在XAML windows.resource中是我的,因此您可以删除它,依此类推。也许这会帮助你启动C代码
这是我的代码,用于在C#中为一个lineseries动态重置图表。只需将
LineSeries
替换为ColumnSeries
,并删除不需要的行即可。将DataContext
名称替换为您的名称,该样式在XAML windows.resource中是我的,因此您可以删除它,依此类推。也许这会帮助你启动C代码
我试过你的建议,但似乎不起作用。间隔只是由系统设置为动态大小。我尝试了你建议的方法,但似乎不起作用。间隔仅由系统设置为动态大小。。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:chartingToolkit="..."
Title="MainWindow" Height="350" Width="525"
DataContext="{Binding RelativeSource={RelativeSource Mode=Self}}">
...
<chartingToolkit:ColumnSeries.DependentRangeAxis>
<chartingToolkit:LinearAxis FontSize="15" Foreground="Black" Interval="{Binding ChartingInterval}" Minimum="0" Orientation="Y" ShowGridLines="False" />
</chartingToolkit:ColumnSeries.DependentRangeAxis>
...
</Window>
//dynamically recreate the chart series1
private void AddSeries()
{
var series1 = new LineSeries();
series1.SetBinding(LineSeries.ItemsSourceProperty, new Binding());
series1.DataContext = Power;
series1.DependentValueBinding = new Binding("Value");
series1.IndependentValueBinding = new Binding("Key");
series1.Style = (Style)this.Resources["LineSeriesStyle1"];
//set initial values:
LinearAxis independentaxis = new LinearAxis();
independentaxis.Orientation = AxisOrientation.X;
independentaxis.ShowGridLines = true;
independentaxis.Maximum = 60;
independentaxis.Minimum = 0;
independentaxis.Title = "Time";
independentaxis.ShowGridLines = true;
series1.IndependentAxis = independentaxis;
//set initial values:
LinearAxis dependentaxis = new LinearAxis();
dependentaxis.Orientation = AxisOrientation.Y;
dependentaxis.ShowGridLines = true;
dependentaxis.Maximum = 600;
dependentaxis.Minimum = 0;
dependentaxis.Title = "Force(n)";
dependentaxis.ShowGridLines = true;
series1.DependentRangeAxis = dependentaxis;
chart1.Series.Add(series1);
}