Reputation: 7164
I have this WPF application. Whenever I open MainWindow.xaml, the xaml file opens very slowly or when I run the solution when MainWindow.xaml is open, the solution runs very slowly. How can I fix this? Here is my MainWindow.xaml :
<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>
Here is my 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>
Upvotes: 0
Views: 125
Reputation: 7164
I have a GetEntities method, adding a IsInDesignMode check seems to solve my problem :
protected override ObservableCollection<Student> GetEntities()
{
if (IsInDesignMode)
{
return null;
}
else
{
_entities = new ObservableCollection<Student>(_context.Set<Student>());
return _entities;
}
}
Upvotes: 2