【问题标题】:WPF how to I edit rows in a DataGrid that I added programmatically C#WPF 如何编辑我以编程方式添加的 DataGrid 中的行 C#
【发布时间】:2017-11-02 21:12:29
【问题描述】:

在我的应用程序中,我有一个空的DataGrid,其中包含在 xaml 中创建的三列:

<DataGrid.Columns>
            <DataGridTextColumn Header="Step Number" Binding="{Binding StepNumber}" />
            <DataGridTextColumn Header="Requirement" Binding="{Binding Requirement}" />
            <DataGridTextColumn Header="Description" Binding="{Binding Description}" Width="*" />
</DataGrid.Columns>

我正在使用以下代码将项目(行)添加到DataGrid

 Dictionary<string, List<int>> reqLocations = modifier.ValidateRequirements(col, startRow, RequirementCallbackHandler, CredentialHandler);

  List<DataGridItems> rowItems = new List<DataGridItems>();

  foreach (KeyValuePair<string, List<int>> kvp in reqLocations)
  {
    // Create Rows
    rowItems.Add(new DataGridItems() { StepNumber = ReturnStepNumber(kvp.Value[0]), Requirement = kvp.Key, Description = "Loading Requirement..." });
  }

  // Add Items source to DataGrid
  dataGrid.ItemsSource = rowItems ;

在运行时,我需要编辑这些行以填写描述列。我怎样才能做到这一点?提前谢谢你。

编辑:

需要明确的是,我需要通过代码而不是手动编辑这些行。

对于要求我包含更多代码的人,它只是一个小类,这里是代码:

public class DataGridItems
{
  public string StepNumber { get; set; }
  public string Requirement { get; set; }
  public string Description { get; set; }
  public ValidityState state { get; set; }
  public HUDI.IJMPSRequirement req { get; set; }

}

【问题讨论】:

  • 我使用 wpf 已经有一段时间了,但如果我是对的,您只需将数据网格控件设置为可编辑。请试一试
  • 您还可以查看 CellEditEnding 事件。 DataGridCellEditEndingEventArgs 提供对 EditingElement 的访问,例如一个文本框。然后你“简单地”必须在你的集合中找到你的行(也许你使用唯一的 id)并设置值

标签: c# wpf xaml datagrid


【解决方案1】:

嗯...首先您绑定到...某物,然后立即用新源(您的 rowItems 列表)替换该绑定。如果您不想尝试使您的应用程序成为 MVVM,只需丢弃 xaml 中的数据列定义(网格将从您的 rowItems 列表中选择那些),然后当您在数据网格中编辑您的描述字段时 rowItems在您的代码后面将被更新。从那里你如何处理该列表取决于你的持久性或你有什么。

如果您想留在 MVVM 领域,请保留绑定并摆脱背后的代码,而是将数据网格的数据上下文设置为包含您要绑定的内容的 ViewModel。

也许添加更多代码(您的 DataGridItems 类是什么样的?您绑定的 ViewModel 是什么样的?)或更多上下文?

【讨论】:

    【解决方案2】:

    在 Datagrid 的下面设置属性,完成后将其设置为 True

    datagrid.IsReadOnly = False;

    【讨论】:

      猜你喜欢
      • 2015-10-29
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 2012-11-11
      相关资源
      最近更新 更多