2011-07-19 188 views
0

说我有一个DataGrid及其ItemsSource绑定到一个数据表(其列各种)。该表的一列是具有多个NaN值的双重类型。在显示部分,我想将所有的NaN值格式化为空白。在WPF DataGrid中格式化单元格

我所做的是一个样式设置为DataGridCell这样的:

<Style TargetType="DataGridCell"> 
    <Setter Property="Content" Value="{Binding Converter={StaticResource NumberConverter}}" /> 
</Style> 

但它不工作,因为细胞的DataContext的是DataRowView的,这意味着我不能让我在哪一列转换器。

任何人有一个好主意? 非常感谢。

+0

您在XAML中使用'ResourceDictionary'来定义'NumberConverter',而不需要每个'DataGridCell'的每个实例。 –

+0

你是对的,我只想展示我如何做的更多细节;但实际上,这不是解决我的问题的解决方案。我试图创建一个DoubleWrpper类,它具有显式的操作符double;然后我创建列到我的新类作为数据表中的一列。我不能再这样做,因为列将按字符串排序,而不是按两倍排序。然后我尝试实现ICompare接口,但它仍然没有效果。 – Howard

回答

0

其实,我想要做的是将NaN细胞转换为空白。所以我创建了DataTable并生成了允许DBNull的DataColumn。当数据源中的值为NaN时,我可以将该值设置为DBNull.Value,以便NaN在我的DataGrid中不显示任何内容。希望它有帮助,如果你有同样的问题。