嵌套在TabControl中的Syncfusion GridDataControl:切换选项卡后自动调整大小的列

时间:2016-03-17 01:03:47

标签: c# wpf syncfusion

我对WPF很新。在使用C#的.NET 3.5上,我想在TabItem中构建一个WPF应用程序,包括Syncfusion的GridDataControl。 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>

其中&#39; GDCSource&#39;是一个ObservableCollection&#39; Person&#39;和&#39;人物&#39;拥有属性&#39; ContactName&#39;和&#39; ContactTitle&#39;。

我尝试使用Syncfusion自己的标签控件(TabControlExt),但这显示了相同的行为。不指定ItemsSource属性并仅显示标题行显示正确的大小调整。

我真的不知道这可能与什么有关。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

一旦GridDataControl被卸载,AutoSizing就会失败。 将以下属性添加到TabControlExt以防止在加载后删除选项卡。

IsDisableUnloadTabItemExtContent="True"