【问题标题】:Datagrid only works when AutoGenerateColumns = true数据网格仅在 AutoGenerateColumns = true 时有效
【发布时间】:2014-03-04 14:09:35
【问题描述】:

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

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

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

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

例外:

为类型集合添加值 'System.Windows.Controls.ItemCollection' 抛出异常操作 在使用 ItemsSource 时无效。访问和修改元素 用 ItemsControl.ItemsSource 代替。

我不想在任何地方向集合中添加任何东西。

在同一页面上,我有另一个具有不同集合的数据网格,它的工作方式与我在上面描述的方式相同,没有任何问题。我能想到的唯一区别是第二个集合由另一个命名空间中的对象组成,但它应该只存在于同一个数据上下文中。

有人有什么想法吗?

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

【问题讨论】:

    标签: c# wpf xaml mvvm datagrid


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 - 我刚刚看过了!我会在 8 分钟内接受你的答复。
    • +1 并请删除双向模式 - 这没有任何意义,或者您的数据网格是否设置过 itemssource?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 2015-08-18
    • 1970-01-01
    相关资源
    最近更新 更多