2011-03-02 52 views
11

我正試圖將我的DataGrid列綁定到列表,其中可以使用索引器檢索列的項目。索引器類型是DateTime。構造函數中的PropertyPath和PathParameters

我正在使用代碼創建DataGrid列,並希望創建一個綁定以從列表中檢索值。在XAML的路徑將被寫成:

{綁定路徑=值[01/01/2011]}

但因爲我這樣做在後面的代碼我需要使用的PropertyPath定義路徑,如所以:

new Binding{ 
    Path = new PropertyPath("Values[01/01/2011]") 
} 

構造函數有另一個重載,它需要一個路徑和一個參數數組。根據documentation,這些參數用於索引器。但是當我寫我的綁定爲

new Binding { 
    Path = new PropertyPath("Values", new DateTime(2011, 01, 01)) 
} 

綁定無法解析路徑。很公平,我並不是說它應該尋找一個索引器。但是如果我把它寫成:

新的Binding { 路徑=新的PropertyPath( 「值[]」,新的日期時間(2011,01,01)) }

然後DateTime.MinValue被傳遞到索引。

有人可以向我解釋我如何在構造函數中使用PathParameters以及如何綁定到索引器而無需對實際路徑中的值執行ToString?

回答

13

基於此MSDN文章,您需要包含「(0)」以指示應放置參數的位置。所以下面應該工作:

new Binding { 
    Path = new PropertyPath("Values[(0)]", new DateTime(2011, 01, 01)) 
} 
+0

謝謝你,開始覺得沒有答案。 – jjrdk 2011-03-04 08:43:28