【问题标题】:How to edit list in C#如何在 C# 中编辑列表
【发布时间】:2017-03-30 14:36:39
【问题描述】:

我想在我的程序中有一个编辑功能。我正在创建一个电话簿,其中我使用列表来保存数据(还没有数据库)。每当我单击列表中的某个项目时,我都希望有一个编辑功能,但我不知道该怎么做。

这是我的添加代码:

Person contact = new Person();
private ObservableCollection<Person> person = new ObservableCollection<Person>(); 
person.Add(new Person() 
    { 
        Name = contact.Name, 
        Contact = contact.Contact, 
        ImagePath = contact.ImagePath, 
        Gender = contact.Gender 
    });

在确定列表中的选定项目时,我使用了选择更改。非常感谢您的帮助。谢谢!

【问题讨论】:

  • 您要编辑记录还是要添加新记录?
  • 为什么不直接添加contactperson.Add(contact);
  • 解释创建、编辑、删除和更新记录的整个过程背后的设置和推理(尤其是在处理 WPF 和数据绑定时)对于单个问题/答案来说有点陡峭。不过,使用ObservableCollection,您走在正确的轨道上。
  • 因此,您使该项目的属性可观察,当您在 UI 中编辑它们时,支持字段也会发生变化。
  • 我想编辑现有记录。不添加另一条记录。我已经添加了,我现在要做的是编辑现有记录

标签: c# wpf list


【解决方案1】:

你应该在你的列表中添加一个 ID,它会让你的生活更轻松,不管怎样,这是我之前的任务。

var vPersonID = YourListGoesHere.Where(pID => pID.personID == id).FirstOrDefault()
if (vPersonID !=null)
{
 vPersonID.Name = "ganda mo po";
//etc etc.
}

更多信息在这里Best way to update an element in a generic List

【讨论】:

    【解决方案2】:

    您可以使用DataGrid 控件来显示和编辑对象集合:https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid(v=vs.110).aspx

    DataGridItemsSource 属性设置为ObservableCollection&lt;Person&gt;,然后双击单元格以编辑Person 对象的属性值:

    private ObservableCollection<Person> person = new ObservableCollection<Person>(); 
    ...
    dataGrid.ItemsSource = person;
    

    <DataGrid x:Name="dataGrid" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      相关资源
      最近更新 更多