您可以使用WPF中的ItemsControl和DataTemplate来循环添加LineSeries和TextBlock元素。以下是一个示例代码:

<Grid>
    <lvc:CartesianChart>
        <ItemsControl ItemsSource="{Binding LineSeriesCollection}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <lvc:LineSeries Values="{Binding}" StrokeThickness="2" />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
        <ItemsControl ItemsSource="{Binding TextBlocks}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding}" />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </lvc:CartesianChart>
</Grid>

在代码中,您需要为LineSeries和TextBlock创建一个绑定的集合。您可以在ViewModel中创建这些集合,并将其分配给DataContext。

public class MainViewModel
{
    public MainViewModel()
    {
        LineSeriesCollection = new ObservableCollection<ChartValues<double>>();
        TextBlocks = new ObservableCollection<string>();

        // 添加LineSeries和TextBlock的示例数据
        LineSeriesCollection.Add(new ChartValues<double> { 1, 2, 3 });
        LineSeriesCollection.Add(new ChartValues<double> { 4, 5, 6 });
        TextBlocks.Add("TextBlock 1");
        TextBlocks.Add("TextBlock 2");
    }

    public ObservableCollection<ChartValues<double>> LineSeriesCollection { get; set; }
    public ObservableCollection<string> TextBlocks { get; set; }
}

然后,在您的MainWindow中设置DataContext:

public MainWindow()
{
    InitializeComponent();
    DataContext = new MainViewModel();
}

这样,您就可以在CartesianChart中动态添加LineSeries和TextBlock元素了


原文地址: http://www.cveoy.top/t/topic/hCXs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录