使用 Silverlight5。
<sdk:TabControl >
<sdk:TabItem Header="Num1" IsSelected="True">
<UserControls:Tab1Data />
</sdk:TabItem>
<sdk:TabItem Header="Num2" >
<UserControls:Tab2Data />
</sdk:TabItem>
</sdk:TabControl>
为什么在运行时调用非选定选项卡上的构造函数?
public partial class Tab2Data : UserControl
{
public Tab2Data()
{
InitializeComponent();
var x = 1; //set a breakpoint here and it hits when debugging the app
}
}
我读过设计选项卡只有在按下时才会“运行”。
如果这是设计使然,我需要在每个构造函数中弄清楚如何判断它是否已被“选择”,以便我可以调用昂贵的数据库操作。我不希望整个应用程序在启动时加载其数据库相关数据(主要是下拉菜单)
EDIT2:我已经连接了一个选定的检查,它提供了所需的功能..
private void TabOverallMain_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
var selectedItem = (TabItem)e.AddedItems[0];
if (selectedItem.Header.ToString() == "Num2") {
tab2Data.PopulateDropDowns();
}
}