1

私を助けてください、または私に方向を示してください。私はこの問題をネットで探していましたが、答えが見つかりませんでした。TextBlockがあり、Text Blockをクリックして、タブコントロールにタブアイテムを追加しています。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 });

ボタンからキャストしている間はOKです。私を助けてください!

4

3 に答える 3

1

ボタンからのキャストで機能する理由を説明できません。しかし、UI 要素を作成し、すぐにそのプロパティを変更したい場合に、このような動作を頻繁に見てきました。ほとんどの場合、UI はまだ構築されていないか、構築中のため、一部のメッセージ パイプがブロックされます。

問題の回避策は次のとおりです。UI の変更をディスパッチャーを介して非同期的に行い、システムがすべてを段階的に作成するのに十分な時間を確保し、IsSelected が適切に処理されるようにします ....

コード:

  Action newTabAction = () => tabControl.Items.Add(new TabItem() { Header = "10 Last Documents", IsSelected = true, Width = 150 });
  Dispatcher.BeginInvoke(newTabAction);
于 2012-05-23T13:15:46.680 に答える
0

これもうまくいくはずです:

tabControl.Items.Add(new TabItem() { Header = "10 Last Documents", Content = rec, Width = 150 });
tabControl.SelectedIndex = tabControl.Items.Count - 1;
于 2012-05-23T13:46:14.090 に答える