【问题标题】:Scrollbar position shared between tab pages in TabControlTabControl 中标签页之间共享的滚动条位置
【发布时间】:2018-11-02 23:34:44
【问题描述】:

我的应用程序使用 TabControl(项目绑定到集合),其中每个选项卡都有一个数据网格(其行绑定到选项卡模型上的集合)。

当我在其中一个选项卡上滚动视图时,相同的滚动操作将应用于所有其他选项卡。我希望每个选项卡分别跟踪自己的滚动值,因此在它们之间切换时不会丢失位置。

我已将其简化为显示相同行为的最小程序:

Xaml:

<Grid>
    <TabControl ItemsSource="{Binding Tabs}" HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" >
        <TabControl.ContentTemplate>
            <DataTemplate>
                <DataGrid ItemsSource="{Binding Lines}" ></DataGrid>
            </DataTemplate>
        </TabControl.ContentTemplate>
    </TabControl>
</Grid>

C#:

    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;

        for (int i = 0; i < 3; i++)
        {
            var tab = new Tab();
            for (int j = 0; j < 100; j++)
                tab.Lines.Add(new Line { Value = (i * 100 + j).ToString() });

            Tabs.Add(tab);
        }
    }

    public class Tab
    {
        public ObservableCollection<Line> Lines { get; set; } = new ObservableCollection<Line>();
    }

    public class Line
    {
        public string Value { get; set; }
    }

任何关于它为什么这样做的见解将不胜感激。

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    这个答案解决了我的问题(并解释了我的问题的真正原因)

    Stop TabControl from recreating its children

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多