代码之家  ›  专栏  ›  技术社区  ›  Jerod Houghtelling

WPF 4.0 TabControl与DataGrid视图源代码意外更改

  •  2
  • Jerod Houghtelling  · 技术社区  · 15 年前

    我有一个 TabControl DataGrid . 当用户在选项卡之间切换时,似乎

    我希望能够保留当前排序视图时,用户返回到一个标签页。他们可能在比较名单,让他们每次都去是没有意义的。场景中的数据绑定在创建后不会更改。但是,选项卡绑定到一个可观察的集合,因为它们需要根据应用程序的使用方式进行添加/删除。

    视图模型:

    public ObservableCollection<DataTable> Tables
    {
        get
        {
            return _tables; // Tables are added/removed through secondary methods
        }
    }
    

    查看:

    <TabControl ItemsSource="{Binding Path=Tables"}>
        <TabControl.ItemTemplate>
            <DataTemplate>
                <TextBlock>
                    <TextBlock.Text>
                        <MultBinding StringFormat="{}{0} ({1})}>
                            <Binding Path="TableName"/>
                            <Binding Path="Rows.Count"/>
                        </MultiBinding>
                    </TextBlock.Text>
                </TextBlock>
            </DataTemplate>
        </TabControl.ItemTemplate>
        <TabControl.ContentTemplate>
            <DataTemplate>
                <DataGrid
                    AutoGeneratingColumns="True"
                    IsReadOnly="True"
                    ItemsSource="{Binding DefaultView}"
                    />
            </DataTemplate>
        </TabControl.ContentTemplate>
    </TabControl>
    

    在更改选项卡时,是否仍有保持datagrid当前排序顺序的方法?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Alex Paven    15 年前

    我认为这与TabControl行为有关,而不是Datagrid。我可能错了,但是TabControl只有一个内容区域,并且在您更改所选选项卡时切换内容,这意味着无论您做什么,内容都将被重新创建。不知道有没有简单的解决方法。。。我很想听听知识渊博的人的回答。