Syncfusion GridDataControl, вложенный в TabControl: автоматическое изменение размера столбца не работает после переключения вкладок

Я довольно новичок в WPF. В .NET 3.5 с использованием С# я хочу создать приложение WPF, включая GridDataControl Syncfusion в TabItem. Предполагается, что GridDataControl автоматически изменяет размер, указывая ширину столбца, кратную '*'. Это отлично работает после первого запуска приложения. Но после переключения вкладок и повторного переключения обратно изменение размера нарушается, а элемент управления сеткой остается фиксированным по размеру. Вот мой xaml-код:

<Window x:Class="SyncfusionGridData.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:SyncfusionGridData"
    xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
    mc:Ignorable="d"
    Title="MainWindow" Height="500" Width="525" DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
    <TabControl>
        <TabItem Header="Tab1">
            <Grid Name="layoutRoot">
                <syncfusion:GridDataControl x:Name="dataGrid" 
                                            AutoPopulateColumns="False"
                                            ShowAddNewRow="False"
                                            ItemsSource="{Binding GDCSource}">

                    <syncfusion:GridDataControl.VisibleColumns>
                        <syncfusion:GridDataVisibleColumn Width="*"
                                                          HeaderText="ContactName"
                                                          MappingName="ContactName">
                        </syncfusion:GridDataVisibleColumn>
                        <syncfusion:GridDataVisibleColumn Width="*"
                                                          HeaderText="ContactTitle"
                                                          MappingName="ContactTitle">
                        </syncfusion:GridDataVisibleColumn>
                    </syncfusion:GridDataControl.VisibleColumns>
                </syncfusion:GridDataControl>
            </Grid>
        </TabItem>
        <TabItem Header="Tab2">
            <Label Content="2" />
        </TabItem>
    </TabControl>
</Grid>

where 'GDCSource' is an ObservableCollection of 'Person' and 'Person' has the properties 'ContactName' and 'ContactTitle'.

Я попытался использовать собственный элемент управления вкладками Syncfusion (TabControlExt), но это показывает то же самое поведение. Отсутствие указания свойства ItemsSource и отображение только строки заголовка показывает правильное изменение размера.

Я вообще не представляю, с чем это может быть связано. Спасибо за любую помощь!


person troet    schedule 17.03.2016    source источник


Ответы (1)


AutoSizing завершается ошибкой, как только GridDataControl выгружается. Добавьте следующее свойство в свой TabControlExt, чтобы предотвратить выгрузку вкладок после их загрузки.

IsDisableUnloadTabItemExtContent="True"
person pfeigl    schedule 23.05.2016