У меня есть TabControl
, где каждая вкладка содержит DataGrid
. Когда пользователь переключается между вкладками, создается впечатление, что DataGrid
создается с нуля. Я говорю это из-за трех вещей, которые я заметил: столбцы восстанавливаются автоматически, текущий отсортированный столбец теряется и выбор теряется.
Мне бы хотелось сохранить текущее отсортированное представление, когда пользователь вернется на вкладку. Они могут сравнивать списки, и не имеет смысла каждый раз прибегать к ним. Данные за кулисами не меняются после создания. Однако вкладки привязаны к наблюдаемой коллекции, поскольку их необходимо добавлять / удалять в зависимости от того, как используется приложение.
ViewModel:
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>
Есть ли способ сохранить текущий порядок сортировки сетки данных при смене вкладок?