Datavisualization 折れ線グラフを生成しました。現在、カスタム ツールチップを作成しようとしていますが、まだ完成していません。ビューに関連する XAML を次に示します (MVVM を使用)。
<charting:Chart x:Name="Chart1" Height="Auto" Width="Auto" Title="Profit and Loss"
DockPanel.Dock="Bottom"
PlotAreaStyle="{StaticResource PlotAreaStyle}"
MinHeight="200"
MinWidth="200"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<charting:Chart.Resources>
<ControlTemplate x:Key="LineDataPointTemplate" TargetType="charting:LineDataPoint">
<Grid x:Name="Root" Opacity="1">
<ToolTipService.ToolTip>
<StackPanel>
<ContentControl>
<ContentControl.Content>
<MultiBinding Converter="{StaticResource MultiFormattingConverter}">
<MultiBinding.Bindings>
<Binding Path="Title" >
<Binding.RelativeSource>
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}" />
</Binding.RelativeSource>
</Binding>
<Binding RelativeSource="{RelativeSource TemplatedParent}"/>
</MultiBinding.Bindings>
</MultiBinding>
</ContentControl.Content>
</ContentControl>
</StackPanel>
</ToolTipService.ToolTip>
</Grid>
</ControlTemplate>
</charting:Chart.Resources>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<ei:CallMethodAction TargetObject="{Binding}" MethodName="ChartLoadedMethod" />
</i:EventTrigger>
</i:Interaction.Triggers>
<charting:Chart.Series>
<charting:LineSeries x:Name="entrySeries" ItemsSource="{Binding EntryDataPointColl}"
Title="{Binding entryDateLegend}"
d:DataContext="EntryDataPointColl.xml"
IndependentValueBinding="{Binding Path=Xvalue}"
FlowDirection="LeftToRight"
DependentValueBinding="{Binding Path=Yvalue}"
>
<charting:LineSeries.DataPointStyle>
<Style TargetType="{x:Type charting:LineDataPoint}">
<Setter Property="Visibility" Value="Collapsed" />
<Setter Property="Opacity" Value="0" />
<Setter Property="Background" Value="DarkGreen" />
<Setter Property="Template" Value="{StaticResource LineDataPointTemplate}"/>
うーん、コードの入力の仕方がわからない… スペース4つインデントしてから貼り付けたのですが、うまくいかないようです。
いずれにせよ、相対ソースを使用して、LineSeries
またはChart
それ自体を参照して、 (my vm) とコレクションにMultiFormattingConverter
アクセスできるようにします。DataContext
次に、「ポイント」からのデータを使用して、TemplatedParent
3 つすべての値を検索し、LineSeries
観察可能なコレクションごとに値を持つツールチップを生成できます。コードで何を指定してFindAncestor, AncestorType=
も、値配列の最初のオブジェクトとして「未設定」になります。
上記のコードは、 my を指定して 1 つのバリエーションを使用しUserControl
ていますが、機能しません。charting:Chart
、charting:Chart1
、charting:LineSeries
を試しましcharting:entrySeries
たが、何もうまくいかないようです。で指定する内容を理解するのを手伝ってもらえますFindAncestor
か?