まず、この質問はこの質問のフォローアップです。質問の半分しか答えられなかったような気がします。
tabItemsで参照されているを削除するだけでなく、それらの を参照しNameて削除できる必要もあります。tabItemsHeaders
私の答えを実装してに変更n.Nameするとn.Header、次のようになります。
var tabToDelete = tabControl.Items.OfType<TabItem>().SingleOrDefault(n => n.Header == stringValue);
if (tabToDelete != null)
tabControl.Items.Remove(tabToDelete);
同じようには機能しないことがわかりました。これでうまくいくはずですか、それともこの構造全体を編集する必要がありますか? tabItemもしそうなら、必要なものがによって参照されていることを確認するにはどうすればよいHeaderですか?
追加: によって参照されるタブNameが削除されると、それらは画面から削除されますが、によって参照されるタブは削除されHeaderません (手動でタブを切り替えるまで)。これは、それらがまだプログラムに存在していると私に思わせます。