これに関する実際のドキュメントは見つかりませんでした。VS Docsについてはご存知だと思いますが、表面を傷つけることすらありません。
バインディングで使用されるRecentProjectsプロパティがあるため、そのようなプロパティを公開するタイプが必要です(またはICustomTypeDescriptorの実装。MSDNMagazineを参照してください)。TeamFoundationClientSupportedの「プロパティ」にもバインディングがあります。
Microsoft.VisualStudio.Shell.UI.InternalというクラスのTeamFoundationClientSupportedというプロパティをMicrosoft.VisualStudio.PlatformUI.StartPageDataSourceというクラスで見つけましたが、プライベートであるため、バインディングでそのまま使用することはできません。このクラスのコンストラクターには、次のようなかなりの数の行が含まれています。
base.AddBuiltInProperty(StartPageDataSourceSchema.CustomizationEnabledName, GetUserSetting(StartPageDataSourceSchema.CustomizationEnabledName, false));
...
base.AddBuiltInProperty(StartPageDataSourceSchema.TeamFoundationClientSupportedName, this.TeamFoundationClientSupported);
...
base.AddBuiltInProperty(StartPageDataSourceSchema.RecentProjectsDataSourceName, source3);
...
最後の2つは興味深いものです。TeamFoundationClientSupportedおよびRecentProjectsと呼ばれる「組み込みプロパティを追加」します...
このメソッドの実装を見ると、プロパティ名(最初のパラメーター)に基づくキーと2番目のパラメーターである値を持つ単純な辞書が示されています。このディクショナリは、Microsoft.Internal.VisualStudio.PlatformUI.UIDataSourceのEnumPropertiesというメソッドによって使用されます。一連の使用を経て、ICustomTypeDescriptorを実装するMicrosoft.Internal.VisualStudio.PlatformUI.DataSource(Microsoft.VisualStudio.Shell.10.0内)というクラスに到達します。したがって、バインディングシステムによってプロパティがどのように検出されるかを説明します。DataSourceタイプ記述子がStartPageDataSourceクラスにどのようにリンクされているかはわかりませんが、少なくとも、StartPageDataSourceコンストラクターでサポートされているプロパティのリストを知ることができます。