将每个数组元素绑定到Datagrid中的列

时间:2014-01-16 07:13:29

标签: c# wpf binding datagrid

我有一个有两个成员的对象,一个是字符串,另一个是ushort数组。我需要在不同的列中显示数组中的每个元素。

<DataGrid ItemsSource="{Binding Results}" AutoGenerateColumns="True" /> 

数据网格绑定到viewmodel:

public class ViewModel
{
     public ObservableCollection<ResultView> Results
     {
        get;
        set;
     }
}

public class ResultView
{
     public string From {};
     public ushort[] Data {};
}

编辑:

没有错误,现在发生的是我更改了ushort数组的getter以返回一个显示所有元素的大字符串,但我希望每个元素都显示在不同的列中。

2 个答案:

答案 0 :(得分:0)

确保DataContext的{​​{1}}为DataGrid。如果是这样的话。 您必须更新类似于

的代码
ViewModel

答案 1 :(得分:0)

我更改了ushort数组的getter,返回一个显示所有元素的大字符串

这个问题是将ushorts的数组表示为单个字符串将导致值显示在一列中,因为字符串是单个变量。

如果你这样做是因为你在数字值本身显示有问题,那么这可以解决。

但是,如果您希望将它们显示为字符串,则需要存储字符串集合,或char可以正常工作。

AutoGenerateColumns可能无法理解您的感受。这将显示它有权访问的任何和所有属性,但不会迭代array,例如,并且无法为这些生成列。

而不是反刍的答案,我建议看看他的:

How can I display array elements in a WPF DataGrid?

我希望这会有所帮助。