【发布时间】:2015-11-16 06:50:41
【问题描述】:
我有一个DataGrid 绑定到一个ObservableCollection<MachineOrder>,我想在其中以编程方式添加一些列。
对象MachineOrder 包含另一个ObservableCollection<KeyValue>,我想从中添加列。
问题是我想在ObservableCollection 中为每一行显示一个特定的键。索引并不总是相同,所以我不能使用它。
我是这样尝试的:
foreach (StringWrapper characteristic in viewModel.Characteristics)
{
Binding binding = new Binding();
binding.FallbackValue = "kein Wert";
binding.Path = new PropertyPath("Charakteristics.FirstOrDefault(x => x.Key == characteristic.Value).Value");
DataGridTextColumn columnActive = new DataGridTextColumn();
columnActive.Header = characteristic.Value;
columnActive.Width = new DataGridLength(0, DataGridLengthUnitType.Auto);
columnActive.Binding = binding;
}
但是 linq 表达式在这里不起作用。顺便说一句:viewModel.Characteristics 包含我想添加到DataGrid 的特征列表
有什么想法吗?
【问题讨论】:
-
首先:你应该使用“Characteristics”,而不是“Charakteristics”(c 不是 k)。虽然它不能解决你的问题。