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

Using c# / WPF / livecharts. How can I set visibility of individual item at SeriesCollection?

我正在为我的图表系列使用 SeriesCollection。

我想做的是当用户 check/uncheck 在系列列表中时切换可见性。

在XAML,ItemsControl代码是这样的

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

在项目模板中,checkbox IsChecked事件是这样绑定的。

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

并且当调用 IsChecked 时,它在 class 文件中被写为

    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 更改为其他内容吗?

谢谢。

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

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

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

您的可见度 属性 和 setter,以及更多其他有用的属性。