2010-09-02 47 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

相关问题