C# 引用父项';来自子元素的值
我试图找到一种更优雅的方法来设置c#中父对象的属性。我当前将父元素传递到子元素中,并以这种方式引用它。这看起来既麻烦又可能不正确 孩子:C# 引用父项';来自子元素的值,c#,oop,C#,Oop,我试图找到一种更优雅的方法来设置c#中父对象的属性。我当前将父元素传递到子元素中,并以这种方式引用它。这看起来既麻烦又可能不正确 孩子: public class ValidatedField<T> { public OpenIssues parent { get; set; } //Other values public void Highlight() { parent.isNot
public class ValidatedField<T>
{
public OpenIssues parent { get; set; }
//Other values
public void Highlight()
{
parent.isNotValid = true;
isHighlighted = true;
}
}
public类ValidatedField
{
公开发布父项{get;set;}
//其他价值观
公共空间突出显示()
{
parent.isNotValid=true;
isHighlighted=true;
}
}
家长:
public class OpenIssues
{
public OpenIssues()
{
DateAppealFiled = new ValidatedField<DateTime?>(this);
}
public bool isNotValid { get; set; }
public ValidatedField<DateTime?> DateAppealFiled { get; set; }
}
公共类开放问题
{
公开发行
{
DateAppalFiled=新的ValidatedField(此字段);
}
公共bool无效{get;set;}
公共ValidatedField DateAppelFiled{get;set;}
}
在这种情况下,是否有更简化的方法来引用父级?或者我注定要将整个父对象发送给子对象,只是为了修改父对象中的一个值
在这种情况下,是否有更简化的方法来引用父级?
还是我注定要把整个父母都交给孩子,只是为了
是否修改父级中的一个值
整个父级(用你的话来说)只是几个字节的引用/指针
但是,
基本上,您可以通过以下三种方式之一来完成此操作
然而,如果您不介意父级和子级的紧密耦合,并且如果不需要在不同的父子配置中使用它们,那么只需使用引用即可。没有造成伤害 基本上,家长电话没有什么问题。这就是它存在的原因。如果您有一个带有按钮列的telerik网格,并且需要按钮中的网格id,则需要执行以下操作:RadGrid RadGrid=(RadGrid)((ImageButton)source.Parent.Parent.Parent.Parent;当您有多个共享公共类的网格时,您会遇到这种情况。是的,它看起来很迟钝,但这是最简单的方法。这可能是一个愚蠢的问题,但从类的名称来看,我认为
ValidatedField
应该对某些数据执行某种验证,而该验证将从OpenIssues
类调用。如果是这种情况,为什么不让验证方法简单地返回一个bool
,并将OpenIssues
类的isNotValid
设置为验证方法的结果呢?我不认为我可以为每个类请求代码示例。看到它们并排在一起可能会帮助我们缩小最小/最麻烦的范围!我将从那里标出正确答案。