【发布时间】:2011-08-10 19:23:59
【问题描述】:
我正在创建一个 DataGrid,我将网格的 ItemsSource 设置为 WCF 请求结果。我有一些字符串的空值,我希望能够为这些空值输入值。我编辑/保存预填充的非空值没有问题,但我无法修改已返回为空的单元格的值。我怎样才能做到这一点?
【问题讨论】:
标签: silverlight datagrid
我正在创建一个 DataGrid,我将网格的 ItemsSource 设置为 WCF 请求结果。我有一些字符串的空值,我希望能够为这些空值输入值。我编辑/保存预填充的非空值没有问题,但我无法修改已返回为空的单元格的值。我怎样才能做到这一点?
【问题讨论】:
标签: silverlight datagrid
您可以在绑定中使用转换器,将空值转换为空字符串。这是转换器的一些代码:
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;
}
}
【讨论】:
<sdk:DataGridTextColumn Binding="{Binding Title, Converter={StaticResource NullStringConverter}}" Header="Title"></sdk:DataGridTextColumn>,如果这会改变任何内容),其中 NullStringConverter 是在 App.xaml 中定义为静态资源键的值转换器的实例。转换器将为非空值触发,但不会为空值触发,从而使转换器无用。
List 的 Category 定义为 List<Category> categories; 和(当 wcf 调用完成时 categories= e.Result 和之后在另一个方法 CategoryGrid.ItemsSource = categories; 和我验证列表返回正确的数据当我设置 ItemsSource 时,我可以正确显示网格,我也可以使用 RowEditEnded 事件编辑/保存。但问题是空值。