【问题标题】:OxyPlot XAML unknown series countOxyPlot XAML 未知系列计数
【发布时间】:2019-03-18 20:51:46
【问题描述】:

有没有办法在 XAML 中绑定 OxyPlot 的系列,如果我不知道,我会有多少系列?

我知道,我可以创建一个 PlotModel,也许我可以绑定一个系列集合。但我真正想要的是,如果我可以将系列绑定到双打列表。

可能的 ItemSources 示例:

ObservableCollection<Tupel<double, List<double>>> ItemSource1 { get; set; }

ObservableCollection<Tupel<double, double>> ItemSource2 { get; set; }

可能的 Xaml 代码:

<oxy:Plot>
 <oxy:LineSeries ItemSource="{Binding ItemSource}" />
</oxy:Plot>

我没有在示例中找到这样的用例。有人给我小费吗?

【问题讨论】:

    标签: wpf oxyplot


    【解决方案1】:

    有没有办法在 XAML 中绑定一个 OxyPlot 的系列,如果我不知道,我会有多少系列?

    不,没有。

    有人给我小费吗?

    正如您已经发现的那样,您可以在您的视图模型中创建一个PlotModel,并绑定到该视图模型并为其添加系列。

    the official docs中有一个代码示例:

    public class MainViewModel
    {
        public MainViewModel()
        {
            this.MyModel = new PlotModel { Title = "Example 1" };
            this.MyModel.Series.Add(new FunctionSeries(Math.Cos, 0, 10, 0.1, "cos(x)"));
        }
    
        public PlotModel MyModel { get; private set; }
    }
    

    XAML:

    <oxy:PlotView Model="{Binding MyModel}"/>
    

    如果您不想使用 PlotModel,可以创建一个 attached behaviour 来添加系列。

    【讨论】:

    • @RCP161:对不起。所以你的问题的答案是否定的。我编辑了我的答案。如果您不想使用 PlotModel,则可以创建附加行为。但是没有纯粹的 XAML 解决方案。
    • 信息:如果您尝试将系列添加到绘图中,您可能必须将每个系列 ItemSource 绑定到一个集合。对 ActualModel 的更改将无效,即使它不为空。如果您使用 ItemSource,您将再次实现 PlotModel 的行为。所以只需使用 PlotModel。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多