如何编辑列表用户?元素,并在WPF列表中显示更改

本文关键字:列表 并在 WPF 显示 元素 何编辑 编辑 用户 | 更新日期: 2023-09-27 17:49:23

是否有一种方法在c#中使用WPF编辑当前列表?例如,如果我用用户的个人信息创建了一个表单,然后我想编辑其中一个字段,有没有办法做到这一点?如果有,你怎么做?

到目前为止,我有一个名为users的类,它有不同的变量,然后它把这些变量变成一个对象列表。

public class Users
{
  public string sFullName {get; set;}
  public string sPhoneNumber {get; set;}
  public int iAge {get; set;}
}
public class userObject
{
  public static List<Users> lstUsers {get; set;}
  static UserObject()
  {
    lstUsers = new List<Users>();
  }
}
public static void AddNewUser(string fullName, string phoneNumber, int age)
{
  lstUsers.Add(new Users{sFullName = fullName, sPhoneNumber = phoneNumber, iAge = age});
}

有没有办法用下面的代码改变上面添加的信息?

public static void EditCurrentUser(int age)
{
  //sudo code
  lstUser.Edit(iAge = age where sFullName  = "bob"); // change iAge to the current or most resent list?
}

如何编辑列表用户?元素,并在WPF列表中显示更改

您可以使用LINQ:

进行就地编辑。
lstUsers.Where(u => u.sFullName == "bob").Select(u => u.iAge = age).ToList();

可以用传统方法做:

foreach (Users user in lstUsers)
{
   if (user.sFullName == "bob")
   {
      user.iAge = age;
   }
}

看看Linq

public static void EditCurrentUser(int age)
{
    var user = lstUser.FirstOrDefault(u => u.sFullName == "bob");
    if (user != null)
    {
        user.iAge = age
    }
}

假设您有ItemsSource = "{Binding lstUsers}"ItemTemplate,例如TextBoxText="{Binding sFullName, Mode = TwoWay}"

模式TwoWayOneWayToSource允许更改绑定源