【发布时间】: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)并设置值