我有一个班级,并且分配了很少的属性。
class MyClass
{
[Category("Common")]
[Description("Name")]
[Browsable(true)]
public string Name
{
get { return name;}
set { name = value; }
}
[Category("Common")]
[Description("Contact")]
[Browsable(true)]
public string ContactNo
{
get { return number;}
set { number = value; }
}
}
下面, 当我实例化这个类时,我想在满足某个条件时删除contactNo属性。我怎样才能做到这一点?
答案 0 :(得分:0)
您的方法取决于是否应该为表中的所有行隐藏属性(即,如果要隐藏整个列或仅隐藏某些单元格中的值)。
如果您只想隐藏某些单元格中的值,可以向属性的set部分添加条件以检查条件并返回null或空字符串。如果条件需要检查外部值,你可以有一个Get方法,它接受适当的值来检查。
在UI级别,要隐藏整个列,它实际上取决于您使用的技术。您在这里没有提到 - 对于基于浏览器的应用程序,JQuery可能是最常用的工具。
答案 1 :(得分:0)
第一步是创建一个抽象类,其中包含每个类都有的属性。
例如:
public abstract class ClassRoot {
public string Name
{
get; set;
}
}
现在,您将创建具有可能彼此不同的其他属性的派生类。
例如:
public class Class1 : ClassRoot {
public string ContactNo
{
get; set;
}
}
另一个课程可能如下所示:
public class Class2 : ClassRoot {
public string Address
{
get; set;
}
}
现在根据您的情况,您可以执行以下操作:
if(....)
{
Class1 class1 = new Class1();
} else {
Class2 class2 = new Class2();
}
每个班级Class1
或Class2
都有属性Name
,但也包含自己定义的属性。
答案 2 :(得分:-1)
class MyClass
{
[Category("Common")]
[Description("Name")]
[Browsable(true)]
public string Name
{
get { return name;}
set { name = value; }
}
[Category("Common")]
[Description("Contact")]
[Browsable(true)]
public string ContactNo
{
get { return number;}
set { number = value; }
}
public bool ContactNoVisible
{
//Change the condition
get {return Name != "bttb"; }
}
}
从现在开始,只检查ContactNoVisible是否显示网格上的属性。如果你告诉我你的代码如何显示属性值,那么我也会帮助你。