我之所以问这个问题,是因为我想创建一个具有FileInfo类的所有功能的类(从FileInfo派生),并允许我将自己的属性添加到它。有从密封类继承的替代方法吗?
我认为一个例子可以协作更多。 我想要什么:
BindingList<FileInformation> files = new BindingList<FileInformation>();
public void GatherFileInfo(string path)
{
files.Add(new FileInformation(path));
listboxFiles.DataContext = files;
}
class FileInformation : FileInfo
{
public bool selected = false;
}
对战什么,我害怕我必须做到:
BindingList<FileInformation> files = new BindingList<FileInformation>();
public void GatherFileInfo(string path)
{
files.Add(new FileInformation(path));
listboxFiles.DataContext = files;
}
class FileInformation : FileInfo
{
string path = "<whatever>"
FileInfo fileInfo = new FileInfo(path);
public bool selected = false;
public string Name
{
get { return fileInfo.Name }
}
//Manually inherit everything I need???
}
这样做的好处是,在WPF中你可以简单的绑定类FileInformation的所有属性,包括那些继承的FileInfo类。
我从来没有看过这个问题,我没有导致我应该开始寻找的地方,所以如何做到这一点的示例或领导将是有益的。
为什么”你是通过公共属性公开一个嵌套在FileInformation类中的'FileInfo'对象,而不是一个接一个地为它的属性声明包装? –
这将是一种可能性,但为了代码可读性,我想知道如果不通过对象绑定到像'FileI.FullName'这样的属性,这是否可能。这也不总是最佳做法。 – DerpyNerd
为了代码可读性,您不应该继承类。如果有什么东西在你尝试使用它的时候是有害的。此外,“选定”是您在UI上执行的操作,它可能不应该存在于模型中。 – Kcvin