2014-07-14 110 views
0

我有這個WPF應用程序。無論何時打開MainWindow.xaml,xaml文件打開速度非常慢,或者當MainWindow.xaml打開時運行解決方案時,該解決方案運行速度非常緩慢。我怎樣才能解決這個問題?這裏是我的MainWindow.xaml:WPF應用程序啓動非常緩慢

<Window x:Class="CodeFirstMVVM.App.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:cm="clr-namespace:System.ComponentModel;assembly=System" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:vm="clr-namespace:CodeFirstMVVM.App.ViewModels" 
     xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
     mc:Ignorable="d" 
     DataContext="{Binding Source={StaticResource Locator}, Path=OgrenciView}" 
     Title="MainWindow" Height="500" Width="900"> 
    <Grid> 
     <Canvas> 
      <Button Content="Yeni" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75" Command="{Binding EkleCommand}"/> 
      <Button Content="Güncelle" HorizontalAlignment="Left" Margin="109,10,0,0" VerticalAlignment="Top" Width="75" Command="{Binding DuzenleCommand}"/> 
      <Button Content="Sil" HorizontalAlignment="Left" Margin="207,10,0,0" VerticalAlignment="Top" Width="75" Command="{Binding SilCommand}"/> 
      <Button Content="Kaydet" HorizontalAlignment="Left" Margin="777,15,0,0" VerticalAlignment="Top" Width="75" Command="{Binding KaydetCommand}"/> 
      <Label Content="AdSoyad" Canvas.Left="25" Canvas.Top="51"/> 
      <Label Content="OkulNo" Canvas.Left="25" Canvas.Top="82"/> 
      <Label Content="Sınıf" Canvas.Left="25" Canvas.Top="113" RenderTransformOrigin="0.053,-0.231"/> 
      <Label Content="Yaş" Canvas.Left="25" Canvas.Top="144" RenderTransformOrigin="-0.053,-0.077"/> 
      <TextBox Height="23" Canvas.Left="131" TextWrapping="Wrap" Canvas.Top="51" Width="283" Name="txtAdSoyad" Text="{Binding AdSoyadUI}"/> 
      <TextBox Height="23" Canvas.Left="131" TextWrapping="Wrap" Canvas.Top="86" Width="283" Name="txtOkulNo" Text="{Binding OkulNoUI}"/> 
      <TextBox Height="23" Canvas.Left="131" TextWrapping="Wrap" Canvas.Top="117" Width="283" Name="txtSinif" Text="{Binding SinifUI}"/> 
      <TextBox Height="23" Canvas.Left="131" TextWrapping="Wrap" Canvas.Top="148" Width="283" Name="txtYas" Text ="{Binding YasUI}"/> 
      <DataGrid x:Name="dg01" ItemsSource="{Binding Entities, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedEntity}" CanUserAddRows="False" Canvas.Left="25" Canvas.Top="201" AutoGenerateColumns="False" IsReadOnly="True" > 
       <DataGrid.Columns> 
        <DataGridTextColumn Binding="{Binding AdSoyad}" Header="AdSoyad" Width="200" /> 
        <DataGridTextColumn Binding="{Binding OkulNo}" Header="OkulNo" Width="50" /> 
        <DataGridTextColumn Binding="{Binding Sinif}" Header="Sınıf" Width="50" /> 
        <DataGridTextColumn Binding="{Binding Yas}" Header="Yaş" Width="50" /> 
       </DataGrid.Columns> 
      </DataGrid> 

      <DataGrid ItemsSource="{Binding SelectedEntity.Notlar}" Canvas.Left="629" Canvas.Top="201" AutoGenerateColumns="False" > 
       <!-- <DataGrid ItemsSource="{Binding SelectedEntity.Notlar}" Canvas.Left="622" Canvas.Top="201" AutoGenerateColumns="False" >--> 
      <DataGrid.Columns> 
        <DataGridTextColumn Binding="{Binding NotDeger}" Header="Notlar"></DataGridTextColumn> 
       </DataGrid.Columns> 
      </DataGrid> 

     </Canvas> 
    </Grid> 
</Window> 

這裏是我的App.xaml:

<Application x:Class="CodeFirstMVVM.App.App" 
      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" 
      StartupUri="MainWindow.xaml" 
      mc:Ignorable="d"> 
    <Application.Resources> 
    <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" xmlns:vm="clr-namespace:CodeFirstMVVM.ViewModels" /> 
    </Application.Resources> 
</Application> 
+0

這就是mainwindow.xaml中的所有內容嗎?這是一個空白頁面? –

+0

@NickUdell你擊敗了我 – afaolek

+0

對於初學者來說,嘗試在Visual Studio中運行分析器並查看是否可以找到任何瓶頸。但是您提供的代碼示例對於我們來說雖然不足以幫助! – Krishna

回答

2

我有一個GetEntities方法,增加了IsInDesignMode檢查似乎解決我的問題:

protected override ObservableCollection<Student> GetEntities() 
     { 
      if (IsInDesignMode) 
      { 
       return null; 
      } 
      else 
      { 

       _entities = new ObservableCollection<Student>(_context.Set<Student>()); 
       return _entities; 

      } 
     }