Положение полосы прокрутки распределяется между вкладками в TabControl - PullRequest
0 голосов
/ 03 ноября 2018

Мое приложение использует 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; }
    }

Любое понимание того, почему это происходит, будет оценено.

1 Ответ

0 голосов
/ 03 ноября 2018

Этот ответ решил мою проблему (а также объяснил реальную причину моей проблемы)

Остановить TabControl для воссоздания своих детей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...