c# (Framework 4.0)中的可视继承类似于VFP中的可视继承吗?

本文关键字:可视 继承 类似于 VFP Framework | 更新日期: 2023-09-27 18:07:06

在VFP中,我可以创建一个类(gridclass1)与网格,然后我创建一个表单,使用这个类(gridclass1),并可以在实例中修改它们的属性。然后我可以创建另一个继承gridclass1的类(gridclass2)。在另一种形式中,我使用gridclass2并可以修改它们的属性和方法。在c#中可以做到这一点吗?我尝试过,但我无法修改实例

c# (Framework 4.0)中的可视继承类似于VFP中的可视继承吗?

中类的属性

不,它不像在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组件是一个不同的问题和答案,因为主题/资源是一个完全不同的动物。