我找不到任何有關此的真實文檔。我猜你知道VS Docs,但它甚至沒有劃傷表面。
由於在綁定中使用了RecentProjects屬性,因此應該有一個暴露此類屬性的類型(或ICustomTypeDescriptor的實現,請參閱MSDN Magazine)。對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 ...
在展望此方法的實現顯示了一個簡單的字典,其中包含基於屬性名稱(第一個參數)的鍵和值作爲第二個參數的鍵。此字典由Microsoft.Internal.VisualStudio.PlatformUI.UIDataSource中名爲EnumProperties的方法使用。通過使用鏈,我們到達一個名爲Microsoft.Internal.VisualStudio.PlatformUI.DataSource的類(在Microsoft.VisualStudio.Shell.10.0中),該類實現ICustomTypeDescriptor。因此,它解釋了綁定系統如何找到這些屬性。我還沒有找到DataSource類型描述符如何鏈接到StartPageDataSource類,但至少我們可以知道StartPageDataSource構造函數中支持的屬性列表。
您是否曾經找到每個最近的項目源項目包含的屬性的描述? – 2012-02-10 18:04:39