【问题标题】:DataGridColumn binding failDataGridColumn 绑定失败
【发布时间】:2015-10-25 14:28:37
【问题描述】:

这是我的DataGrid

    <DataGrid Visibility="Visible"
        Grid.Row="1"
        SelectionUnit="CellOrRowHeader"
        Name="dataGrid"
        SelectionMode="Single"
        ItemsSource="{Binding collcection}">
        <DataGrid.ContextMenu>
            <ContextMenu>
                <MenuItem Command="Copy" Click="MenuItem_Click_1"/>
            </ContextMenu>
        </DataGrid.ContextMenu>
        <DataGrid.Columns>
            <DataGridTemplateColumn Header="Select">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox 
                            x:Name="cbRunRobot"
                            IsChecked="{Binding Value}"
                            Width="60"
                            Height="25"
                            Checked="cbRunRobot_Checked"
                            Unchecked="cbRunRobot_Unchecked"
                            Margin="25,0,0,0" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

        </DataGrid.Columns>
    </DataGrid>

查看模型:

list<MyData> collcection;
public class MyData
{
   public string Name;
   public string Id;
}

我尝试添加这个Column

<DataGridColumn Binding="{Binding Name}" Header="Name" Width="180"/>

得到这个错误:

错误 1 ​​“DataGridColumn”类型是抽象的,必须包含显式值。

错误 2 无法识别或无法访问成员“Binding”。

【问题讨论】:

  • 您能否添加完整的 DataGrid xaml。您是否在 中定义了列?

标签: wpf binding datagrid


【解决方案1】:

DataGridColumn 是一个抽象类,这意味着它不能被实例化。这同样适用于DataGridBoundColumn

你的选择是:

  • DataGridCheckBoxColumn 用于布尔值
  • DataGridComboBoxColumn 用于可枚举值
  • DataGridHyperlinkColumn 用于 Uri 值
  • DataGridTemplateColumn 通过定义自己的单元格模板来显示任何类型的数据
  • DataGridTextColumn 显示文本值

看起来DataGridTextColumn 就是您要查找的内容。

【讨论】:

    【解决方案2】:

    你好,我可以建议你下一个:

    1. 绑定到 ObservableCollection 而不是列表。
    2. 让您的 MyData 模型实现 InotifyPropertyChanged。
    3. 让 MyData 模型中涉及的每个绑定属性触发 OnPropertyChanged 事件。
    4. 这里是工作示例的链接:How to Display and select items in a Datagrid ComboBox with WPF C#, using MVVM

    问候,

    【讨论】:

      猜你喜欢
      • 2011-07-10
      • 2014-08-26
      • 2017-02-07
      • 2011-01-31
      • 2012-06-26
      • 2013-07-25
      • 2019-09-27
      • 2012-01-14
      相关资源
      最近更新 更多