c# (Framework 4.0)中的可视继承类似于VFP中的可视继承吗?
本文关键字:可视 继承 类似于 VFP Framework | 更新日期: 2023-09-27 18:07:06
在VFP中,我可以创建一个类(gridclass1)与网格,然后我创建一个表单,使用这个类(gridclass1),并可以在实例中修改它们的属性。然后我可以创建另一个继承gridclass1的类(gridclass2)。在另一种形式中,我使用gridclass2并可以修改它们的属性和方法。在c#中可以做到这一点吗?我尝试过,但我无法修改实例
不,它不像在Visual FoxPro中那样工作。查看来自相同背景的其他人的讨论
我不知道为什么有人投票关闭,但你的问题很相关。我认为你想要什么,你可以,从功能的角度来看。可视化地,例如使用Windows Presentation Foundation (WPF),您定义数据网格控件的可视化组件,您可以将其中的元素绑定到DependencyProperties,并且可视化组件可以引用这些元素来获得任何可视化效果。
我正在开发的应用程序是在c#中使用WPF和"主题"之间的分裂,主题是用户的视觉层,而c#代码背后的东西应用prop/事件/方法的工作原理相似。你可以在c#中定义一个基于数据网格的类,然后派生和添加你认为合适的子类功能……例:
public class MyDataGrid : DataGrid
{
// publicly available to change anywhere...
public string AnyProperty { get; set; }
// some property that is publicly readable, yet protected, such as internal
// control to the class
public string SomeProperty { get; protected set; }
public MyDataGrid()
{
// have a default hook to some general functionality you want to perform
MouseDoubleClick += MyDataGridMouseDoubleClick;
}
// make protected and virtual so you CAN override this in a subclass
protected virtual void MyDataGridMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
// anything you want to do commonly for a double-click...
}
protected void SomeOtherFeature()
{ // do something based on some settings?
}
}
public class MySubclassDataGrid : MyDataGrid
{
public int SomeNewProperty { get; set; }
public MySubclassDataGrid()
{
}
protected override void MyDataGridMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
// anything DIFFERENT for handling in the data grid instance...
}
}
现在,应用VISUAL组件是一个不同的问题和答案,因为主题/资源是一个完全不同的动物。