2010-09-02 19 views
1

什麼可能導致Silverlight 4 DataGridTextColumn.Header的值顯示爲System.Windows.Data.Binding而不是解析的綁定值?它看起來像一個ToString發生在顯示類名稱而不是類的格式化值的地方。爲什麼這個綁定顯示一個類名?

的結合看起來像這樣

Header="{Binding Path=Dummy,Source={StaticResource languagingSource},Converter={StaticResource languagingConverter},ConverterParameter=vehicleDescription}" 

和問題不綁定爲同一綁定內的任何地方在於,用不同的ConverterParameter值,在同爲Button.Content和TextBlock.Text性能做工精細XAML頁面。

即使在本地數據上下文中創建一個像這樣的簡單字符串屬性也具有相同的結果。

public string DataGridHeaderDescription { get { return "Description"; } } 

Header="{Binding DataGridHeaderDescription}" 

我甚至嘗試添加一個字符串格式

Header="{Binding DataGridHeaderDescription,StringFormat=\{0\}}" 

但這並沒有影響無論是。

回答

2

現在可以使用即使在不是從FrameworkElement衍生但是該元件的約束的屬性必須被定義爲DependencyProperty,其Header不是元素綁定。

因爲頭是一個簡單的位置標記的任何內容將被放置在頭,你可以簡單地這樣做: -

<DataGridTextColumn.Header> 
    <TextBlock Text="{Binding Path=Dummy,Source={StaticResource languagingSource},Converter={StaticResource languagingConverter},ConverterParameter=vehicleDescription}" /> 
</DataGridTextColumn.Header> 
+0

感謝這個;比我在答案中提到的線索中提出的更簡單的解決方案。 – 2010-09-04 06:38:45