提问人:Brian 提问时间:5/20/2015 最后编辑:Brian 更新时间:5/20/2015 访问量:2918
WPF TabControl:在窗口加载时加载所有选项卡
WPF TabControl: Load all tabs at window load
问:
我有一个 WPF 窗体,其中包含一个包含 2 个 TabItems 的 TabControl。我对一个选项卡上的控件进行了验证,这些控件强制执行另一个选项卡上的控件的相关验证。但是,当用户切换到第二个选项卡时,它不会在已验证的控件周围显示任何红色方块,因为在第一次查看该 TabItem 之前,不会呈现选项卡内容。有没有办法在加载窗口时加载所有选项卡的内容?
更新:
我想出了一种方法来做到这一点,但感觉很麻烦。我在代码隐藏中将以下代码添加到MainWindow_OnLoaded事件处理程序中:
for (var tabIndex = MainTabControl.Items.Count - 1; tabIndex >= 0; tabIndex--)
{
MainTabControl.SelectedIndex = tabIndex;
MainTabControl.UpdateLayout();
}
此代码只是循环访问 TabControl 中的所有选项卡,并将它们设置为活动选项卡并更新布局。这将强制初始化所有内容。这一切都发生在窗口出现之前,因此用户看不到更改。我的 TabControl 中只有 2 个选项卡,但如果有更多的选项卡,我可以看到这会有点尴尬。
答: 暂无答案
评论
for
Dispatcher.BeginInvoke((Action)(() => { /* your update code */ }));