Silverlight 4数据网格编辑空值';s细胞

Silverlight 4数据网格编辑空值';s细胞,silverlight,datagrid,Silverlight,Datagrid,我正在创建一个DataGrid,其中我将网格的ItemsSource设置为WCF请求结果。我有一些字符串的空值,我希望能够为这些空值输入值。我在编辑/保存预填充的非空值方面没有问题,但我无法修改已返回为空的单元格的值。如何实现这一点?您可以在绑定中使用转换器将空值转换为空字符串。以下是转换器的一些代码: public class NullToEmptyStringConverter : IValueConverter { public object Convert(object valu

我正在创建一个DataGrid,其中我将网格的ItemsSource设置为WCF请求结果。我有一些字符串的空值,我希望能够为这些空值输入值。我在编辑/保存预填充的非空值方面没有问题,但我无法修改已返回为空的单元格的值。如何实现这一点?

您可以在绑定中使用转换器将空值转换为空字符串。以下是转换器的一些代码:

public class NullToEmptyStringConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value == null ? string.Empty : value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value == string.Empty ? null : value;
    }
}

您可以在绑定中使用转换器将空值转换为空字符串。以下是转换器的一些代码:

public class NullToEmptyStringConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value == null ? string.Empty : value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value == string.Empty ? null : value;
    }
}

我将所有非空值都调用到转换器中,但是空值不会进入转换器。我在convert和convertback方法中有断点,但它们不会为空值触发,因此没有任何用处。我有wcf调用返回项,并在已完成事件上设置我的网格的ItemsSource。网格正确地显示它们(我有一些自定义列,如
,如果有任何变化),其中NullStringConverter是值转换器的实例,在App.xaml中定义为静态资源键。召集人将为非空值启动,但不会为空值启动,从而使转换器无效。ItemsSource的结构是什么?(WCF服务请求)我似乎遗漏了问题的一个关键部分,因为我从来没有见过一个转换器适用于某些绑定而不适用于其他绑定和(当wcf调用完成
categories=e.Result
后,在另一个方法
CategoryGrid.ItemsSource=categories;
中,我验证列表是否返回正确的数据,当我设置ItemsSource时,我正确显示网格,我也可以使用
RowEditEnded
事件进行编辑/保存。但问题为空价值观。这没问题。我以前花时间做了很多琐碎的事情,后来却踢到了自己。很高兴它现在起作用了。:)我将所有非null值调用到转换器中,但null值不会进入转换器。我在convert和convertback方法中有断点,但它们不会为null值触发,因此没有任何用处。我有wcf调用返回项,并在完成的事件上设置网格的ItemsSource。网格正确显示它们(我有一些自定义列,如
,如果有任何变化),其中NullStringConverter是在App.xaml中定义为静态资源键的值转换器的实例。conventer将为非null值启动,但不会为null启动,从而使转换器无效。ItemsSource的结构是什么?(WCF服务请求)我似乎遗漏了问题的一个关键部分,因为我从来没有见过一个转换器适用于某些绑定而不适用于其他绑定。它是一个
类别的
列表
,定义为
列表类别;
和(当wcf调用完成
categories=e.Result
后,在另一个方法
CategoryGrid.ItemsSource=categories;
中,我验证列表是否返回正确的数据,当我设置ItemsSource时,我正确显示网格,我也可以使用
RowEditEnded
事件进行编辑/保存。但问题为空价值观。这没问题。我以前花时间做了很多琐碎的事情,后来却踢到了自己。很高兴它现在起作用了。:)