gpt4 book ai didi

c# - 只对一个对象设置属性

转载 作者:太空狗 更新时间:2023-10-29 18:26:28 24 4
gpt4 key购买 nike

如何制作像 RadioButton 这样的 bool 属性?你知道吗,就像一个 RadioButton,只能选择一个?

像下面的例子。

当我将一个员工 IsResponsiblePerson 设置为 true 时,它​​应该将所有其他员工设置为 false。不使用循环。

var list = new ObservableCollection<Employee>();

public class Employee
{
public string Name{get;set;}
public string Surname{get;set;}
public bool IsResponsiblePerson{get;set;}
}

最佳答案

如果我不想使用循环,我可能会做的是,正如 Lasse V. Karlsen 在评论中所说,将“ResponsiblePerson”的名称存储在另一个属性中:

static string ResponsiblePerson {get;set;}

并将 IsResponsiblePerson 属性更改为如下所示:

public bool IsResponsiblePerson 
{
get
{
return this.Name == ResponsiblePerson;
}
set
{
if (value)
{
ResponsiblePerson = this.Name;
}
else
{
if (this.Name == ResponsiblePerson)
{
ResponsiblePerson = "";
}
}
}
}

示例代码:

List<Employee> employees = new List<Employee>() { new Employee() { Name = "name1" },
new Employee() { Name = "name2" },
new Employee() { Name = "name3" } };

Employee emp1 = employees.Where(x => x.Name == "name1").First();
emp1.IsResponsiblePerson = true;

Employee emp2 = employees.Where(x => x.Name == "name2").First();
emp2.IsResponsiblePerson = true;

foreach (Employee e in employees)
{
Console.WriteLine(e.IsResponsiblePerson); //false true false
}

我制作了一个 DotNetFiddle 示例 here

关于c# - 只对一个对象设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com