【发布时间】:2017-01-03 20:31:24
【问题描述】:
我使用 Caliburn.Micro 将一组屏幕加载到选项卡控件中。
我的问题是:在我单击选项卡以显示它之前,不会加载选项卡内容。我已经尝试一一更改所选索引,激活所有项目等,但没有任何效果!
有谁知道我该如何解决这个问题?我的想法和头发都用完了。谢谢!
<Controls:MetroWindow x:Class="App.Views.ShellView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:Dialog="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
xmlns:cal="http://www.caliburnproject.org"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Dialog:DialogParticipation.Register="{Binding}"
BorderBrush="{DynamicResource AccentColorBrush}"
BorderThickness="1"
WindowStartupLocation="CenterScreen"
WindowState="Maximized"
mc:Ignorable="d">
<Grid>
<TabControl Name="Items" >
</TabControl>
</Grid>
public class ShellViewModel : Conductor<IScreen>.Collection.AllActive
{
protected override void OnViewLoaded(object view)
{
base.OnViewLoaded(view);
int x = 0;
for(int x = 0; x < 5; x++)
{
MyTabViewModel myTabVm = new MyTabViewModel(x.ToString());
Items.Add(myTabVm);
}
}
}
OnViewLoaded 仅在我单击选项卡时触发:(
public class MyTabViewModel : Screen
{
public MyTabViewModel(string displayName)
{
this.DisplayName = displayName;
this.ViewAttached += SistemaClaroViewModel_ViewAttached;
}
protected override void OnViewLoaded(object view)
{
GetBrowser().Navigate(new Uri("https://www.google.com.br/"));
base.OnViewLoaded(view);
}
public WebBrowser GetBrowser()
{
return ((MyTabView)this.GetView()).Browser;
}
}
【问题讨论】:
-
检查stackoverflow.com/questions/20852204/…。尝试可以一一调用
TabPage.Show()方法
标签: wpf tabcontrol caliburn.micro caliburn