彩票走势图

TeeChart Pro .NET使用教程(2022):如何让自定义序列化(上)

原创|行业资讯|编辑:凌霄汉|2022-04-13 15:28:28.290|阅读 132 次

概述:此次报表开发工具TeeChart Pro .NET使用教程将为大家带来如何让自定义序列化。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

TeeChart Pro 将自动为您定义所有 Axis 标签,并提供足够的灵活性来定制您可能有的任何特定要求。 TeeChart Pro 提供真正的多轴。 这些在设计或运行时可用,并为 Axis 定义提供了无数的可能性和灵活性。



介绍

TeeChart 自动处理所有必要的序列化步骤以允许保存和调用 TeeChart。这包括图表及其系列的所有修改元素。

自定义序列化

您可以决TeeChart系列提供您需要的大部分功能,但您希望修改它以包含您自己的附加信息,以便系列发布或采取行动或提供对您的其他部分的参考使用该系列时的应用程序。为此,您可能希望创建自己的 SeriesType,从 TeeChart Series 派生,添加您自己的自定义元素。 TeeChart 的自定义序列化允许保存(序列化)和恢复这些元素。

请注意:自定义元素的保存分为两种技术:

  • 已知类型的序列化(例如字符串、整数、双精度)
  • 自定义(未知)类型的序列化
序列化自定义系列

让我们假设您希望从 TeeChart 的 Line Series 派生一个 Series。 Line 系列包含您需要的功能,但您希望添加一些元素用于跟踪目的或作为与任何特定数据集关联的增值对象。

以下是如何定义从线系列派生的自定义系列的示例:

public class MyLine : Steema.TeeChart.Styles.Line 
{ 
  public MyLine(Chart c) : base(c) 
  { 
    myStrVar = "default"; 
  } 
 
  public MyLine() : this((Chart)null) { } 
 
  private string myStrVar = ""; 
  private int myIntVar = 0; 
 
  public string MyStrProp 
  { 
    get { return myStrVar; } 
    set { myStrVar = value; } 
  } 
 
  public int MyIntProp 
  { 
    get { return myIntVar; } 
    set { myIntVar = value; } 
  } 
}
保存和导入

您可以填充自定义变量并保存图表,当重新导入保存的图表时,它们将导入。 只要变量是已知的系统类型(例如字符串、整数、双精度),就不需要额外的步骤。 TeeChart 将处理序列化和反序列化。

private void button1_Click(object sender, EventArgs e) 
{ 
  MyLine mLine=new MyLine(); 
 
  mLine.MyStrProp = "now set"; 
  mLine.MyIntProp = 43; 
 
  tChart1.Series.Add(mLine); 
  mLine.FillSampleValues(); 
 
  tChart1.Export.Template.Save(@"c:\files\customLine.ten"); 
}

导入带有修改系列的图表

private void button2_Click(object sender, EventArgs e) 
{ 
  tChart1.Clear(); 
  tChart1.Import.Template.Load(@"c:\files\customLine.ten"); 
  label1.Text = ((MyLine)(tChart1[0])).MyStrProp; 
  label2.Text = ((MyLine)(tChart1[0])).MyIntProp.ToString(); 
}

Label1 和 Label2 将显示保存图表之前设置的值。

使用自定义对象定义自定义系列

以下是从 Line Series 派生的 Series 示例,其中包括已知和未知类型 (MyObj) 的新元素。 由于 TeeChart 不知道如何序列化和反序列化未知类型,我们需要提供一种机制,您可以在其中编写例程来执行此操作并在序列化/反序列化时调用它。 该机制是通过从 Steema.TeeChart.Export.TemplateExport.ICustomSerialization 接口继承类来提供的。 这要求您向您的类添加 2 个方法:

  • 公共无效序列化(序列化信息信息)
  • public void DeSerialize(SerializationInfo 信息)
using Steema.TeeChart.Export; 
 
// Custom Line class 
public class MyLine : Steema.TeeChart.Styles.Line, TemplateExport.ICustomSerialization 
{ 
  public MyLine(Chart c) : base(c) 
  { 
    myStrVar = "default"; 
  } 
 
  public MyLine() : this((Chart)null) { } 
 
  private string myStrVar = ""; 
  private int myIntVar = 0; 
  private MyObj myMyObj; 
 
  public string MyStrProp 
  { 
    get { return myStrVar; } 
    set { myStrVar = value; } 
  } 
 
  public int MyIntProp 
  { 
    get { return myIntVar; } 
    set { myIntVar = value; } 
  } 
 
  ///  
  /// Method to ease population of the myMyObj variable. 
  ///  
  public void setMyObj(int i, string s) 
  { 
    myMyObj = new MyObj(i, s); 
  } 
 
  ///  
  /// Property of Custom type, MyObj 
  ///  
  public MyObj MyObj 
  { 
    get { return myMyObj; } 
    set { myMyObj = value; } 
  } 
 
  ///  
  /// Obligatory method (TemplateExport.ICustomSerialization interface) 
  ///  
  public void Serialize(SerializationInfo info) 
  { 
    //save custom elements  
    info.AddValue("myObjStr", myMyObj.MyString, myMyObj.MyString.GetType()); 
    info.AddValue("myObjInt", myMyObj.MyInt); 
  } 
 
  ///  
  /// Obligatory method (TemplateExport.ICustomSerialization interface) 
  ///  
  public void DeSerialize(SerializationInfo info) 
  { 
    //recover custom elements into the myMyObj variable 
    myMyObj = new MyObj(info.GetInt32("myObjInt"), info.GetString("myObjStr")); 
  } 
} 
 
//custom object 
public class MyObj 
{ 
  private string myString; 
  private int myInt; 
 
  public MyObj(int i, string s) 
  { 
    myString = s; 
    myInt = i; 
  } 
 
  public int MyInt 
  { 
    get { return myInt; } 
    set { myInt = value; } 
  } 
 
  public string MyString 
  { 
    get { return myString; } 
    set { myString = value; } 
  } 
}

请注意,序列化使用“info.AddValue”来保存自定义元素的值。 反序列化根据您保存的变量类型使用“info.Getxxxx”。


如果您想了解TeeChart for .NET正版价格,欢迎咨询

TeeChart Pro .NET使用教程(2022):如何进行ADO 数据库访问

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP