DataGrid仅在AutoGenerateColumns = true时有效

时间:2014-03-04 14:09:35

标签: c# wpf xaml mvvm datagrid

我有一个带有itemssource的数据网格

ItemsSource="{Binding Path=SelectedCollection, Mode=TwoWay}"

当我设置AutogenerateColums = true时,一切正常。 但是,当我将其设置为alse时,添加以下行仅显示1列:

<DataGridTextColumn Width="2*" Binding="{Binding Path=Domain}" Header="Domein"/>

例外:

  

为类型集合添加值   'System.Windows.Controls.ItemCollection'引发了一个异常Operation   在使用ItemsSource时无效。访问和修改元素   而改为使用ItemsControl.ItemsSource。

我不是想在任何地方添加任何东西。

在同一页面上,我有另一个带有不同集合的数据网格,它正如我上面描述的那样工作,没有任何问题。我能想到的唯一区别是第二个集合由另一个名称空间中的对象组成,但它应该只存在于同一个datacontext中。

任何想法?

编辑:在设计时我收到以下消息: 无法在类型....的数据上下文中解析属性域。

1 个答案:

答案 0 :(得分:4)

您应在列标记中添加自定义列。我怀疑你是直接在DataGrid标签下添加的。它应该是:

<DataGrid ItemsSource="{Binding Path=SelectedCollection, Mode=TwoWay}">
  <DataGrid.Columns>
     <DataGridTextColumn/>
  </DataGrid.Columns>
</DataGrid>