Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wpf datagrid动态绑定列_Wpf_Datagrid_Binding - Fatal编程技术网

wpf datagrid动态绑定列

wpf datagrid动态绑定列,wpf,datagrid,binding,Wpf,Datagrid,Binding,假设有以下类作为示例: public class Item { public String Key {get;set;} public String[] Values { get; set;} } 为了简单起见,假设每个项的值数组的长度相同。 让我们来收集这些项目: 例a: List<Item> items = new List<Items>( new Item() { Key = "A", Values = new String[]{"OneA

假设有以下类作为示例:

public class Item
{
    public String Key {get;set;}
    public String[] Values { get; set;}
}
为了简单起见,假设每个项的值数组的长度相同。 让我们来收集这些项目:

例a:

List<Item> items = new List<Items>(
    new Item() { Key = "A", Values = new String[]{"OneA", null, "ThreeA"}},
    new Item() { Key = "B", Values = new String[]{"OneB", "TwoB", null}},
    new Item() { Key = "C", Values = new String[]{null, null, "ThreeC"}}
);
 A | OneA | ____ | ThreeA |

 B | OneB | TwoB | ______ |

 C | ____ | ____ | ThreeC |
例B:

List<Item> items = new List<Items>(
    new Item() { Key = "1", Values = new String[]{"One1", null}},
    new Item() { Key = "2", Values = new String[]{"One2", "Two2"}},
    new Item() { Key = "3", Values = new String[]{null, null}}
);
 1 | OneA | ____ |

 2 | OneB | TwoB |

 3 | ____ | ____ |
换句话说,在不同的情况下,值数组具有不同的长度。但在一种情况下,为了简化,所有值数组的长度都相同

如果DataGridInstance.ItemsSource绑定到items NotifyPropertyChanged,则如何设置列以及如何设置列值的绑定

当然,每次刷新时都会提到DataGridInstance.Columns.Clear。 如果再次添加列,则列的数量当然取决于值数组的长度

但是我将如何创建这些值的绑定呢

我想要如下的东西:

Binding columnABinding = new Binding("Values[0]");
Binding columnBBinding = new Binding("Values[1]");
Binding columnCBinding = new Binding("Values[3]");
对不起,我的英语不好。我尽量让它简单,希望它是可以理解的! 提前感谢您的回答

最近有一个问题,根据我在那里的回答,我怀疑你能否绑定列本身。要刷新列,您可以订阅其中一个项的PropertyChanged事件,如果数组长度更改,您可以重新生成列。如果DataContext发生更改,并且新项目以这种方式提交,则您可能还希望处理DataContextChanged事件以进行刷新