我目前正在创建一个项目,它将从我的COM端口获取实时数据,然后显示它以便于解释.其中一部分是使用动态数据显示创建折线图,我希望它也能实现.
我目前有一个工作设置,它将来自集合的数据汇总在一起,并以可读的格式输出给绘图仪,虽然这对我的静态样本数据来说很好,但我担心考虑到数据会更新很多,这远远没有优化(有时每秒多次).始终发送数据已更改的通知会使图表刷新,但始终提取所有数据并创建新的图源似乎远非有效.我在我的视图模型中使用以下代码:
private CompositeDataSource _AccelXData;
public CompositeDataSource AccelXData
{
get
{
var xData = new EnumerableDataSource<int>(dataItems.Select(v => v.id));
xData.SetXMapping(x => x);
var yData = new EnumerableDataSource<double>(dataItems.Select(v => v.accelX));
yData.SetYMapping(y => y);
_AccelXData = xData.Join(yData);
return _AccelXData;
}
}
Run Code Online (Sandbox Code Playgroud)
我有多个运行的,每个代表一个图形(例如x,y和z轴上的加速度).他们必须遵循示例图表:
<d3:ChartPlotter Name="plotter" DockPanel.Dock="Top" Margin="5">
<d3:LineGraph DataSource="{Binding AccelXData}" />
<d3:LineGraph DataSource="{Binding AccelYData}" />
<d3:LineGraph DataSource="{Binding AccelZData}" />
</d3:ChartPlotter>
Run Code Online (Sandbox Code Playgroud)
关于这个我想知道的两件事:是否有可能编写一个函数来处理所有数据输出,我不必一遍又一遍地复制相同的代码?更重要的是,一旦我的Collection更新而不是一遍又一遍地重新收集所有数据,那么简单地将值添加到我的折线图中的最佳方法是什么?
我目前正在尝试创建一个简单的应用程序,从我制作的API中提取数据并将其显示在列表中.然后,您应该可以单击要导航到带有图像查看器等的详细视图页面的列表项.为此,我需要导航到一个名为PlanViewer.xaml(当前仅适用于Windows Phone应用程序部分的页面,尽管如此).
为了我的列表工作,我在我的共享中构建了以下数据模板App.xaml:
<DataTemplate x:Key="PlanDataTemplate">
<StackPanel Orientation="Horizontal">
<Button Name="NavigatePlan" Tag="{Binding FilePath}">
<StackPanel>
<TextBlock Style="{StaticResource SubheaderTextBlockStyle}" Text="{Binding Name}" />
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="{Binding LastUpdate}" />
</StackPanel>
</Button>
</StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
我将其应用于MainPage.xaml此处,如下所示:
<ItemsControl x:Name="PlanList" ItemTemplate="{StaticResource PlanDataTemplate}" ItemsSource="{Binding PlanItems}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
我无法将任何事件绑定到按钮中App.xaml,所以我认为我需要使用一个ICommand接口.到目前为止,我可能还有一个更为根本的错误.
TL; DR用于我的目标:我想调整datatemplate,以便每个按钮链接到一个页面PlanViewer.xaml,该页面带有一个描述应该显示哪个计划的参数(例如ID或文件路径).
我有一个相当简单的问题,但即使在谷歌搜索之后,我也暂时无法解决它.我有以下命令要执行:
var dataFragments = bufferLine.Split(';').Select(double.Parse).ToList();
Run Code Online (Sandbox Code Playgroud)
但是我需要使用InvariantCulture进行解析.我想只对这个操作使用不变文化,但我无法弄清楚如何为这个问题设置适当的参数.
以下是我要解析的数据的示例:
1;-0.002;-0.005;0.994;-0.975;2.560;4.024;-2.700;3.299;86.699;1009.599;28.67;
Run Code Online (Sandbox Code Playgroud)