2012-01-25 84 views
1

私は複数のTabItemでTabControlを持っています。 Ocasianally私は1つのタブから別のタブに切り替える遅い負荷を経験します。最初の考えはサービスでしたが、アプリケーションはタブを切り替えるときにサービスを呼び出すようには見えません。スローネスの切り替えTabItems

<TabControl Visibility="{Binding MenuVisible}" Name="MenuControl" Grid.Row="1" > 

<TabItem Header="Business Rules Alerts" > 

    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="250" /> 
     </Grid.RowDefinitions> 

     <ContentControl cal:RegionManager.RegionName="GraphAlertsRegion" Margin="0" /> 

     <!-- Grid for UserListRegion and EventListRegion --> 
     <Grid Grid.Row="1"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 

      <!-- EventList region --> 
      <ContentControl Grid.Column="0" cal:RegionManager.RegionName="EAlertsListRegion" Margin="0" /> 

     </Grid> 

    </Grid> 

</TabItem> 
    <TabItem Header="Business Rules"> 

     <Grid> 
      <Grid.RowDefinitions> 
      <RowDefinition Height=".5*" /> 
      <RowDefinition Height=".5*" /> 
     </Grid.RowDefinitions> 

     <ContentControl Grid.Row="0" cal:RegionManager.RegionName="BusinessRulesListRegion" Margin="0" /> 
     <Grid Grid.Row="1"> 
      <ScrollViewer VerticalScrollBarVisibility="Auto"> 
       <ItemsControl cal:RegionManager.RegionName="BusinessRulesWizardRegion" Margin="0" /> 
      </ScrollViewer> 

     </Grid> 

</TabItem> 

</TabControl> 

パフォーマンスを向上させる方法はありますか?特に 、

<ContentControl cal:RegionManager.RegionName="GraphAlertsRegion" Margin="0" /> 

が遅くタブあるツリービューに加え、いくつかのグラフ(<charting:Chart.Series>)です。私は、そのタブに切り替えるときに、コードがサービスを呼び出さないようにしました。遅延の理由は他に何がありますか?

+0

を見てみましょうあなたのコントロールがロードされたイベントハンドラがある場合はそれを使用します。 – 0x4f3759df

答えて

3

これは、タブコントロールの奇妙な標準的な動作である - それはあなたがこの記事の例で詳細を参照してください、切り替えながら、キャッシュされたTabItemsを保つために、わずかにそれを拡張する必要がありますので、切り替えながらアイテムをアンロードです:Keeping the WPF Tab Control from destroying its children

+0

それは本当にこの場合に役立ちません... – Manolete

+0

あなたは知っていますか?あなたはすでにディディを試したことがありますか?私はTabCOntrolを初めて使用している間に同じ問題に遭遇しました。これが私を助けました。おそらくあなたはTabControl自体に関連していないが、何らかの形であなたのコードに関係する問題を観察しているでしょうか? – sll