我有一个有两个成员的对象,一个是字符串,另一个是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以返回一个显示所有元素的大字符串,但我希望每个元素都显示在不同的列中。
答案 0 :(得分:0)
确保DataContext
的{{1}}为DataGrid
。如果是这样的话。
您必须更新类似于
ViewModel
答案 1 :(得分:0)
我更改了ushort数组的getter,返回一个显示所有元素的大字符串
这个问题是将ushorts
的数组表示为单个字符串将导致值显示在一列中,因为字符串是单个变量。
如果你这样做是因为你在数字值本身显示有问题,那么这可以解决。
但是,如果您希望将它们显示为字符串,则需要存储字符串集合,或char
可以正常工作。
AutoGenerateColumns
可能无法理解您的感受。这将显示它有权访问的任何和所有属性,但不会迭代array
,例如,并且无法为这些生成列。
而不是反刍的答案,我建议看看他的:
How can I display array elements in a WPF DataGrid?
我希望这会有所帮助。