我已經生成了一個Datavisualization折線圖,現在我正在嘗試構建一個自定義工具提示並且接近,但尚未完成。這是我對View的相關XAML(使用MVVM)。在數據可視化圖表系列中使用relativesource findancestor
<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
本身,以便在我MultiFormattingConverter
,我將有機會獲得DataContext
(我的虛擬機)和集合。然後我可以使用來自「點」的數據,它是TemplatedParent
給我的數據,用於查找我所有3個LineSeries
的值,並生成一個工具提示,其中包含每個可觀察集合的值。不管我在FindAncestor, AncestorType=
代碼中指定的是什麼,我仍然以「unset」作爲值數組中的第一個對象。
上面的代碼是使用一個變化,通過指定我UserControl
,但它不工作。我試過charting:Chart
,charting:Chart1
,charting:LineSeries
,charting:entrySeries
但是沒有任何東西似乎適用於我。有人能幫我弄清楚在FindAncestor
中指定什麼嗎?
是的,他們在這裏使用文本區域古怪反應制表符代替空格 - 我總是粘貼任何我打算寫到記事本++和首先做一個標籤 - >空間轉換... – JerKimball