从TextBlock转换时,TabItem ISSelected属性不起作用

时间:2012-05-23 11:28:59

标签: wpf tabs

请帮帮我,或告诉我方向。我一直在寻找这个问题的网,但找不到答案。 我有TextBlock并通过单击Text Block我将Tab Item添加到我的Tab Control。一切正常,除了IS Selected = true;选项卡项目未被选中。我必须手动选择它。这是我的代码。

var tabControl = (sender as TextBlock).FindParent<TabControl>();

tabControl.Items.Add(new TabItem() { Header = "10 Last Documents", IsSelected = true, Content = rec, Width = 150 });

从Button进行投射时,这是好的。请帮帮我!

3 个答案:

答案 0 :(得分:1)

我无法解释为什么它适用于来自按钮的演员。但是,当您创建UI元素并立即想要更改其属性时,我经常看到这种行为。大多数情况下,UI尚未构建,或者在构造过程中导致阻塞某些消息管道。

以下是您的问题的解决方法: 您的UI是否通过调度程序异步更改,以便系统有足够的时间逐步创建所有内容,并且应正确处理您的IsSelected ....

代码:

  Action newTabAction = () => tabControl.Items.Add(new TabItem() { Header = "10 Last Documents", IsSelected = true, Width = 150 });
  Dispatcher.BeginInvoke(newTabAction);

答案 1 :(得分:0)

这也应该有效:

tabControl.Items.Add(new TabItem() { Header = "10 Last Documents", Content = rec, Width = 150 });
tabControl.SelectedIndex = tabControl.Items.Count - 1;

答案 2 :(得分:0)

我知道这已经老了但是为了防止有人遇到这个问题我在点击图片时发现了类似的问题。我发现mousedown导致类似的问题,激活选项卡不起作用,但切换到mouseup时它开始工作。