2010-03-24 85 views
2

我想玩弄自定義visual studio 2010 rc開始頁面最近的項目。對於我的想法,我需要自定義數據源/數據綁定,但我無法找到信息來自哪裏。如何自定義Visual Studio 2010 RC StartPage最近的項目

<ScrollViewer Grid.Row="1" HorizontalAlignment="Stretch" 
    Style="{DynamicResource StartPage.ScrollViewerStyle}" 
    VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto"> 
    <sp:MruListBox 
     DataContext="{Binding Path=RecentProjects}" 
     ItemsSource="{Binding Path=Items}" 
     Background="Transparent" 
     BorderThickness="0" 
     AutomationProperties.AutomationId="MruList"/> 
</ScrollViewer> 

任何人都可以指向正確的方向嗎?我發現它對最近的項目有約束力,但它來自哪裏?

+0

您是否曾經找到每個最近的項目源項目包含的屬性的描述? – 2012-02-10 18:04:39

回答

0

我找不到任何有關此的真實文檔。我猜你知道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構造函數中支持的屬性列表。

+0

謝謝約翰。我認爲這和現在要做的一樣好。真的,我只想擴展起始頁面最近的項目,以便能夠重新命名項目(特別是解決方案)。這對任何在scm主線工作的人都很有用。至少我知道我會得到大量的使用它:) – devlife 2010-03-25 01:54:48

+0

我明白上面的解決方案是在說什麼,但我仍然不明白我如何可以得到的屬性列表上可用RecentProjectDataSource。有沒有什麼辦法可以訪問這個代碼? – 2011-06-20 06:19:01

+0

我還沒有讀過它們,但也許這些文章將有助於:http://www.7388.info/index.php/article/wpf/2011-06-17/18130.html和http://www.7388。 info/index.php/article/wpf/2011-06-15/18024.html – Timores 2011-06-20 20:21:43

相關問題