WPF TabControl:在窗口加载时加载所有选项卡

时间:2015-05-19 23:43:07

标签: wpf validation events tabs lazy-loading

我有一个包含2个TabItem的TabControl的WPF表单。我在一个选项卡上的控件上进行了验证,该选项卡在另一个选项卡上强制执行控件的相关验证。但是,当用户切换到第二个选项卡时,它不会在验证的控件周围显示任何红色方块,因为在第一次查看TabItem之前不会呈现选项卡内容。有没有办法在加载Window时加载所有选项卡的内容?

更新

我找到了一种方法来做到这一点,但感觉非常黑客。我将以下代码添加到我的代码中的MainWindow_OnLoaded事件处理程序中:

for (var tabIndex = MainTabControl.Items.Count - 1; tabIndex >= 0; tabIndex--)
{
    MainTabControl.SelectedIndex = tabIndex;
    MainTabControl.UpdateLayout();
}

此代码只是遍历TabControl中的所有选项卡,并将它们设置为活动选项卡并更新布局。这会强制所有内容初始化。这一切都发生在窗口出现之前,因此用户没有看到更改。我的TabControl中只有2个标签,但如果有更多标签,我会发现这有点尴尬。

0 个答案:

没有答案