C# C类添加到集合中 使用系统; 使用System.Windows; 使用System.Collections.Generic; 使用Microsoft.Research.DynamicDataDisplay.DataSources; 使用System.Windows.Threading; 命名空间类引用堆栈溢出 { 公共部分类主窗口:窗口 { public observedatasource stockData1=null; 公共主窗口() { 初始化组件(); DateTime=DateTime.Now; 双倍价格=180.00;//IBM股票价格 StockInfo1Info=newStockInfo1{Time=Time,Price=Price}; stockData1.AppendAsync(调度程序,信息); } 公共类股票信息1 { 公共日期时间{get;set;} 公共双价{get;set;} 公共双范围{get;set;} } } }

C# C类添加到集合中 使用系统; 使用System.Windows; 使用System.Collections.Generic; 使用Microsoft.Research.DynamicDataDisplay.DataSources; 使用System.Windows.Threading; 命名空间类引用堆栈溢出 { 公共部分类主窗口:窗口 { public observedatasource stockData1=null; 公共主窗口() { 初始化组件(); DateTime=DateTime.Now; 双倍价格=180.00;//IBM股票价格 StockInfo1Info=newStockInfo1{Time=Time,Price=Price}; stockData1.AppendAsync(调度程序,信息); } 公共类股票信息1 { 公共日期时间{get;set;} 公共双价{get;set;} 公共双范围{get;set;} } } },c#,wpf,collections,C#,Wpf,Collections,我对C#/WPF相当陌生。希望跟踪/绘制许多股票(例如:IBM as StockInfo1)。我怎样才能在不创建丑陋的StockInfo2、StockInfo3等的情况下,干净利落地完成任务? 我一直在寻找和尝试几种选择,但许多选择超出了我对C#的有限知识。 感谢您提前提供任何指导/示例/代码片段只需为股票创建一个类即可 using System; using System.Windows; using System.Collections.Generic; using Microsoft.Re

我对C#/WPF相当陌生。希望跟踪/绘制许多股票(例如:IBM as StockInfo1)。我怎样才能在不创建丑陋的StockInfo2、StockInfo3等的情况下,干净利落地完成任务? 我一直在寻找和尝试几种选择,但许多选择超出了我对C#的有限知识。
感谢您提前提供任何指导/示例/代码片段

只需为股票创建一个类即可

using System;
using System.Windows;
using System.Collections.Generic;
using Microsoft.Research.DynamicDataDisplay.DataSources;
using System.Windows.Threading;

namespace ClassReferenceStackOverFlow
{

public partial class MainWindow : Window
{
    public ObservableDataSource<StockInfo1> stockData1 = null;
    public MainWindow()
    {
        InitializeComponent();

        DateTime time = DateTime.Now;
        double price = 180.00; // IBM stock price
        StockInfo1 info = new StockInfo1 { Time = time, Price = price };
        stockData1.AppendAsync(Dispatcher, info);
    }

    public class StockInfo1
    {
        public DateTime Time { get; set; }
        public double Price { get; set; }
        public double Range { get; set; }
    }
}
}
公共类股票
{
公共字符串符号{get;set;}
public observetecollection StockInfos{get;}=new observetecollection();
}    
公共类股票信息
{
公共日期时间{get;set;}
公共双价{get;set;}
公共双范围{get;set;}
}
然后在主课上

public class Stock
{
    public string Symbol { get; set; }
    public ObservableCollection<StockInfo> StockInfos { get; } = new ObservableCollection<StockInfo>();
}    

public class StockInfo
{
    public DateTime Time { get; set; }
    public double Price { get; set; }
    public double Range { get; set; }
}
公共ObservableCollection股票{get;}=new ObservableCollection();
不需要这个
AppendAsync
东西

只需要为股票创建一个类

using System;
using System.Windows;
using System.Collections.Generic;
using Microsoft.Research.DynamicDataDisplay.DataSources;
using System.Windows.Threading;

namespace ClassReferenceStackOverFlow
{

public partial class MainWindow : Window
{
    public ObservableDataSource<StockInfo1> stockData1 = null;
    public MainWindow()
    {
        InitializeComponent();

        DateTime time = DateTime.Now;
        double price = 180.00; // IBM stock price
        StockInfo1 info = new StockInfo1 { Time = time, Price = price };
        stockData1.AppendAsync(Dispatcher, info);
    }

    public class StockInfo1
    {
        public DateTime Time { get; set; }
        public double Price { get; set; }
        public double Range { get; set; }
    }
}
}
公共类股票
{
公共字符串符号{get;set;}
public observetecollection StockInfos{get;}=new observetecollection();
}    
公共类股票信息
{
公共日期时间{get;set;}
公共双价{get;set;}
公共双范围{get;set;}
}
然后在主课上

public class Stock
{
    public string Symbol { get; set; }
    public ObservableCollection<StockInfo> StockInfos { get; } = new ObservableCollection<StockInfo>();
}    

public class StockInfo
{
    public DateTime Time { get; set; }
    public double Price { get; set; }
    public double Range { get; set; }
}
公共ObservableCollection股票{get;}=new ObservableCollection();
不需要这个
AppendAsync
stuff

你不需要
StockInfo2
只需使用列表或数组

public ObservableCollection<Stock> Stocks { get; } = new ObservableCollection<Stock>();
public List StockList=new List();
然后你可以用

public List<ObservableDataSource<StockInfo>> StockList = new List<ObservableDataSource<StockInfo>>();
var info=new observedatasource>(new StockInfo{
时间=日期时间。现在,
价格=20
})
股票列表。添加(信息);
将新股票添加到您的列表中

或者编写一个函数来添加新的StockInfo

var info = new ObservableDataSource<StockInfo>>(new StockInfo {
    Time = DateTime.Now,
    Price = 20
})
StockList.add(info);
public void addStockInfo(双倍价格,日期时间){
StockList.add(新的ObservableDataSource>(新的StockInfo{
时间=时间,
价格=价格
});
}

您不需要
StockInfo2
只需使用列表或数组

public ObservableCollection<Stock> Stocks { get; } = new ObservableCollection<Stock>();
public List StockList=new List();
然后你可以用

public List<ObservableDataSource<StockInfo>> StockList = new List<ObservableDataSource<StockInfo>>();
var info=new observedatasource>(new StockInfo{
时间=日期时间。现在,
价格=20
})
股票列表。添加(信息);
将新股票添加到您的列表中

或者编写一个函数来添加新的StockInfo

var info = new ObservableDataSource<StockInfo>>(new StockInfo {
    Time = DateTime.Now,
    Price = 20
})
StockList.add(info);
public void addStockInfo(双倍价格,日期时间){
StockList.add(新的ObservableDataSource>(新的StockInfo{
时间=时间,
价格=价格
});
}

a
List
能否解决您的问题?a
List
能否解决您的问题?进一步澄清:数据来自交易所(NYSE、CME、NASDAQ等)。每秒钟/分钟实时发送一次带有(符号、价格、时间)的报价。必须找到正确的集合,并将引号添加到集合中。在Microsoft的动态数据显示ObservableData Source中,有一个AppendAsync函数,当大量数据以稳定流形式输入时,可以方便地异步添加图表数据。目前,我读取了符号,标识集合(StockInfo1,StockInfo2,…20)并添加要绘制的数据点。进一步澄清:数据来自交易所(纽约证券交易所、芝加哥商品交易所、纳斯达克等)。每秒钟/分钟实时一次,一个带有(符号、价格、时间)的报价。必须找到正确的集合,并将引号添加到集合中。在Microsoft的动态数据显示ObservableData Source中,有一个AppendAsync函数,当大量数据以稳定流形式输入时,可以方便地异步添加图表数据。目前,我读取了符号,标识集合(StockInfo1,StockInfo2,…20)并添加要绘制的数据点。