私の WPFToolKit チャートにはいくつかのシリーズが含まれています。凡例自体をテンプレート化し、スタイル リソースを作成して LegendItem もテンプレート化しました。
<Style x:Key="CustomLegendItemStyle" TargetType="{x:Type charting:LegendItem}">
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type charting:LegendItem}">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<DockPanel LastChildFill="True">
<Ellipse Width="10" Height="10" Fill="{Binding Background}" Stroke="{Binding Background}" StrokeThickness="1" Margin="0,0,3,0" DockPanel.Dock="Left"/>
<CheckBox IsChecked="{Binding Path=Visibility,Converter={StaticResource VisToBoolConverter},Mode=TwoWay}" />
<TextBlock DockPanel.Dock="Right" Text="(num)" />
<datavis:Title Content="{TemplateBinding Content}" Margin="10 0" />
</DockPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type charting:LineSeries}">
<Setter Property="LegendItemStyle" Value="{StaticResource CustomLegendItemStyle}" />
</Style>
これにより、シリーズの可視性を制御することになっている LegendItem にチェックボックスが作成されます。しかし、そうではありません。ViewModel にもプロパティを作成し (デフォルトで true/visible)、LineSeries の可視性がバインドされます。
<charting:LineSeries ... Visibility="{Binding DisplayLoad,Converter={StaticResource BoolToVisConverter},Mode=TwoWay}" />
しかし、二人はくっつかない。チェックボックスのバインド パスを StoopidUser に変更すると、出力ウィンドウにバインド エラーが表示され、 StoopidUser プロパティが objectLineDataPoint
に見つからないことが示され、少し困惑しました。私はすぐにチェックしましたが、(a)なぜそれが LineDataPoint なのか、(b)そこからシリーズに到達する方法がわかりません。
何が悪いのか分かりますか?