私はWPFでいくつかの散布図を描画しようとしており、通常はチャート軸上に小さな目盛りを描こうとしています。私のビューモデルは、軸ごとにを使用してティックの位置を定義します。各Tick
の項目は、ティックが軸上に落ちる位置のデカルト座標です。私はIMultiValueConverter
キャンバスサイズを使用して、単一のポイントをレンダリングできるLineオブジェクトに変換していますが、どのようにバインドしますか? WPFは私にX1、X2、Y1、およびY2を指定したいと思っていますが、私はただその行を与えたいだけです。WPF - ラインを返すコンバーターでラインをバインドする
私の考えは、以下のようなデータテンプレートを定義することでしたが、Line
に直接マルチバインドを与えることができないため、コンパイルできません。私が使用できる中間要素/属性はありますか?
<DataTemplate DataType="{x:Type viewModel:Tick}" x:Key="TickTemplate">
<Line>
<WhatsMissing?>
<MultiBinding Converter="{StaticResource PointsConverter}">
<Binding Path="Points"/>
<Binding Path="DataContext.MinPoint" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}"/>
<Binding Path="DataContext.MaxPoint" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}"/>
<Binding Path="ActualWidth" ElementName="ChartCanvas"/>
<Binding Path="ActualHeight" ElementName="ChartCanvas"/>
</MultiBinding>
</WhatsMissing?>
</Line>
</DataTemplate>