使用c#/ WPF / livecharts。如何在SeriesCollection中设置单个项目的可见性?

时间:2019-07-31 06:16:54

标签: c# wpf livecharts

我正在将SeriesCollection用于我的图表系列。

我想做的是在用户选中/取消选中序列列表时切换可见性。

在XAML中,ItemsControl代码是这样的。

<ItemsControl ItemsSource="{Binding Path=SeriesItemList}"
              ItemTemplate="{StaticResource toggleChartItemTemplate}"
                >

在项目模板上,复选框IsChecked事件就是这样绑定的。

        <CheckBox IsChecked="{Binding Path=IsChecked}" >
        </CheckBox>

当调用IsChecked时,它被写为类文件

    public bool IsChecked
    {
        get { return _IsChecked; }
        set
        {
            _IsChecked = value;
            Console.Write("");
            mainViewModel.ToggleSeries(SeriesName, value);
            RaisePropertyChanged("IsChecked");
        }
    }

最后,ToggleSeries函数称为

    public void ToggleSeries(string SeriesName, bool value)
    {
        for (int idx = 0; idx < MainChartSeries.Count; idx++)
        {
            if (MainChartSeries[idx].Title == SeriesName)
            {
                //We will set visibility of the series here.
            }
        }
        Console.Write("");
    }

代码正常工作。因此,我认为没有探索。 如果可以查明如何设置各个系列的可见性 的SeriesCollection。

我可以访问的是IsSeriesVisible属性。它没有设置方法。

如何设置可见性?我应该将SeriesCollection更改为其他内容吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

遇到了同样的问题并找到了解决方案。

您可以将 SeriesCollection [idx] 转换为您正在使用的Series 像这样:

LineSeries seriesToHide = (MainChartSeries[idx] as LineSeries);
seriesToHide.Visibility = Visibility.Collapsed;

在那里,您将拥有一个带有setter的Visibility属性,甚至还有更多其他有用的属性。