У меня есть MainWindow и 4 пользовательских элемента управления.Переключив DataContext на мои UserControls, я могу получить приложение с несколькими «страницами».В каждом UserControl у меня есть webBrowser-Control, который отображает PowerPoint (так -> 4 UC = 4 ppt).Проблема, с которой я столкнулся сейчас, заключается в том, что когда я переключаю свой DataContext (страница переключения), мне снова приходится загружать (вызывать метод навигации) весь ppt в моем веб-браузере, и это занимает некоторое время.Как я могу это исправить?
спасибо заранее:))
Адриан
РЕДАКТИРОВАТЬ КОД
MainWindow.xaml
<Window.Resources>
<DataTemplate x:Name="Page1Template" DataType="{x:Type viewmodels:Page1Model}" >
<views:Page1 DataContext="{Binding}"/>
</DataTemplate>
<DataTemplate x:Name="Page2Template" DataType="{x:Type viewmodels:Page2Model}">
<views:Page2 DataContext="{Binding}"/>
</DataTemplate>
<DataTemplate x:Name="Page3Template" DataType="{x:Type viewmodels:Page3Model}">
<views:Page3 DataContext="{Binding}"/>
</DataTemplate>
<DataTemplate x:Name="Page4Template" DataType="{x:Type viewmodels:Page4Model}">
<views:Page4 DataContext="{Binding}"/>
</Window.Resources>
// ...
<ContentControl Content="{Binding}"></ContentControl>
MainWindow.xaml.cs (я называю страницу Switch следующим образом)
private void menuBtn1_Click(object sender, RoutedEventArgs e)
{
DataContext = new Page1Model();
}
private void menuBtn2_Click(object sender, RoutedEventArgs e)
{
DataContext = new Page2Model();
}
private void menuBtn3_Click(object sender, RoutedEventArgs e)
{
DataContext = new Page3Model();
}
private void menuBtn4_Click(object sender, RoutedEventArgs e)
{
DataContext = new Page4Model();
}
и, скажем, например, мой UserControl1: (когда я звоню в UC1 каждый раз, когда ppt открывается снова, я хочу просто открыть его один раз):
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
powerPointBrowser1.Navigate("somePPTfile.pptx");
powerPointBrowser1.LoadCompleted += powerPointBrowser1_LoadCompleted;
}
Надеюсь, я дал понять: S