【发布时间】:2011-09-14 01:47:04
【问题描述】:
它是如何开始的?
我想将不在业务对象集合中的两列添加到 radGridView 中。特别是 NewUrl 和 NewIdOnFilehost。 :)
那么我想做什么?
我把这个放到网格中
radGridViewReuploadStatus.ItemsSource = FileHostings.Filesonic.getdAllDeletedLinks();
然后我添加了新列
<telerik:GridViewColumn Header="New F.H.Id" UniqueName="NewFilehostId" Width="*"></telerik:GridViewColumn>
<telerik:GridViewColumn Header="New URL" UniqueName="NewUrl" Width="*"></telerik:GridViewColumn>
那么问题出在哪里?
radGridViewReuploadStatus.Rows 不存在。 我不知道他们为什么没有将它添加到 wpf radGridView,它是在它的 aspx 版本中。我能够使用 getChildsOfType 获取行,但这显然不是理想的方式。
接下来我做了什么?
class dlExtended : DownloadLink {
public string NewUrl { get; set; }
public string NewIdOnFilehost { get; set; }
}
最后的问题 - 我不明白的基本知识
如何从 DownloadLink 制作 dlExtended? (我知道这是错误的命名约定,它只是例如:)) 我如何从 DownloadLink 的集合中列出 dlExtended?一定有比使用 foreach 更好的方法!
现在我可能做错了
所以现在我应该根据传入的 DownloadLink 进行构造函数并设置 dlExneded 的每个属性?!
也许它可以通过像这样的反射来实现
public DownloadLinkExtended(DownloadLink origDl){
PropertyInfo[] myObjectProperties = origDl.GetType().GetProperties(); //BindingFlags.Public | BindingFlags.NonPublic
foreach (PropertyInfo pi in myObjectProperties)
{
if (pi.GetValue(origDl, null) != null)
{
pi.SetValue(this, pi.GetValue(origDl, null), null);
}
}
}
嗯,这很愚蠢。 那么,我对扩展类并为其添加新属性没有得到什么?
我知道 EF4 类是部分的,我可以简单地通过部分类向它们添加属性,但我只希望这些用于网格而不是其他任何地方。
【问题讨论】:
-
一种可能的解决方案的制定:如何继承类,使带有父类的参数实例的构造函数设置所有继承的属性?
标签: c# class inheritance entity-framework-4 extend