私はLiveChartライブラリを使用していますが、グラフを表示するのに問題があります。実際、私のウィンドウでは、多くの種類のチャートが必要です。そのため、グラフの種類ごとにクラスにリンクするDataTemplateSelectorを使用します。しかし、グラフが表示されても、データは表示されません。私はDataContext="{Binding}"
を "Column Graph"の宣言に追加しようとしましたが、成功しませんでした。ここでCartesianChart(Live-Charts)はDataTemplateで動作しません
は、私のコードの抜粋です:
ResultView.xaml
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<FrameworkElement.Resources>
<DataTemplate x:Key="graphEmptyTemlpate">
<StackPanel Width="Auto" Height="60" Orientation="Horizontal" MaxWidth="700">
<TextBlock Text="{Binding name}" VerticalAlignment="Center" TextAlignment="Center" FontSize="20" Margin="0,0,0,0" Foreground="#FF006B93"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="columnTemplate">
<StackPanel Background="#FFBFBFBF">
<TextBlock Text="{Binding title}"/>
<TextBlock Text="{Binding subTitle}"/>
<lvc:CartesianChart Width="400" Height="400" Series="{Binding listSeries}">
</lvc:CartesianChart>
</StackPanel>
</DataTemplate>
<local:GraphTemplateSelector
ColumnTemplate="{StaticResource columnTemplate}"
GraphEmptyTemplate="{StaticResource graphEmptyTemlpate}"
x:Key="graphTemplateSelector" />
</FrameworkElement.Resources>
<StackPanel Orientation="Horizontal" >
<ItemsControl ItemsSource="{Binding Results}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Expander Header="{Binding Title}"
IsExpanded="True"
Margin="10 10 10 10"
FontSize="20"
Foreground="White">
<ItemsControl ItemsSource="{Binding Items}"
ItemTemplateSelector="{DynamicResource graphTemplateSelector}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Margin="10 10 10 10" Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Expander>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>
私のViewModelクラスのコンストラクタはXAMLでResultViewModel.cs であり、結果は、アイテムの対応、C#での結果に対応しますColumnGraph.cs C#の
public ResultsViewModel()
{
instance = this;
this.Results = new ObservableCollection<ResultParts>();
this.RpAgitation = new ResultParts("Results of the Agitation part");
ColumnGraph gr = new ColumnGraph();
RpAgitation.Items.Add(gr);
this.Results.Add(_rpAgitation);
}
でRpAgitation.Itemsへとfinnaly
あなたの助けのためののpublic class ColumnGraph : IGraph
{
public SeriesCollection listSeries { get; set; }
public ColumnGraph()
{
listSeries = new SeriesCollection
{
new LineSeries
{
Title = "Series 1",
Values = new ChartValues<double> { 4,7,8,9,5,4,2}
}
};
}
}
おかげで、ないWPF UiFramework要素で
おかげで、私が修正されますasap –
0.7.7版 –
これは既にありがとう! – bobbinch