繁体   English   中英

关闭没有项源的Tabcontrol的虚拟化-WPF

[英]Turning off Virtualization for Tabcontrol without itemsource - WPF

我在Tabcontrols和Oxyplot中有一个错误。 我的xaml的结构是这样的:我有一个AvalonDock文档,并且在内部每个文档有3个编码标签。 这些选项卡中的一个选项卡具有另一个选项卡控件,每个选项卡内均具有Oxyplot视图。 问题是当我打开两个(有时是三个)Avalondock文档时,出现以下异常:

This PlotModel is already in use by some other PlotView control.

我猜这是因为tabcontrol正在虚拟化选项卡,并且图模型多次用于不同的视图。 我该如何预防?

问题与此非常相似,

http://discussion.oxyplot.org/topic/506228-error-this-plotmodel-is-already-in-use-by-some-other-plotview-control/

但我认为还没有解决方案。 我尝试了此处提供的虚拟化关闭解决方案

http://www.codeproject.com/Articles/460989/WPF-TabControl-Turning-Off-Tab-Virtualization

并正常工作,但这是针对模板中的标签的,而不是针对硬编码标签的标签。

有任何想法吗?

谢谢

问候。

索尔·伊达尔戈(Saul Hidalgo)。

您可以使用以下代码从PlotModel中删除视图

private PlotVm vm = new PlotVm();
    private void LayoutRoot_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
        var window = new PlotWindow();
        ((IPlotModel)vm.Model)?.AttachPlotView(null);
        window.DataContext = vm;

        Debug.WriteLine(vm.Model.PlotView);
        window.ShowDialog();
        Debug.WriteLine(vm.Model.PlotView);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM