Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定线性轴间隔WPF工具包图表_C#_Wpf - Fatal编程技术网

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);
}