2

MSDN のサンプルに非常に困惑しています。そして、私が見つけたすべてのサンプルは、通常、StackPanel 内のテキスト項目または同様の単​​純なものを中心に展開しています。

ItemsSource として数値の配列が与えられた場合 -

ItemsSource = { 25 , 50 , 75 }

ItemsControl はこれのみを生成する必要があります。

<PolyLine Points="0,25 1,50 2,75" />

示されているように、各アイテムはポイントに変換する必要があります。ここで、「x」値はアイテム リスト内のアイテムの位置であり、「y」値はアイテム自体の解釈された数値です。

ItemsPanelTemplate が絶対に必要な場合は、単一の PolyLine のレイアウトに与える影響が最も小さいものになると思います。これは、明示的な列または行の定義がない単純なグリッドです。

しかし、このシナリオで ItemsPanelTemplateまたはItemsPresenterまたはItemTemplate を実装する方法がわかりません。

誰かが私を正しい方向に向けることができますか?

4

3 に答える 3

0

あなたが求めることは可能ですが、それほど単純ではありません... Bea Stollnitz は、Polygon のポイント コレクションをデータ ソースにバインドすることに関する一連の記事を書きました。おそらくそこからいくつかのアイデアを得ることができます。

于 2009-09-06T22:50:47.050 に答える
0

折れ線グラフを表示するコントロールを作成しようとしていると思います。WPF Toolkit charting controls、特にLineSeriesクラスを確認できます。ソース コードはダウンロード可能で、これを見ることで WPF コントロールの作成方法をかなり学ぶことができます。ただし、このアプローチは、単純に数値のコレクションを にバインドするほど簡単ではありませんPolyLine

于 2009-09-06T23:03:37.383 に答える
0

ここにサンプルがあります

<ItemsControl
    x:Name="ic">
    <ItemsControl.Resources>
        <local:DatumToPositionConverter x:Key="datumToPositionConverter" />
    </ItemsControl.Resources>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Ellipse
                    Width="2"
                    Height="2"
                    Fill="Red"
                    Margin="{Binding Converter={StaticResource datumToPositionConverter}}"
                    />
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

コンバーターは、データを位置に変換するために使用されます。

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    double d;
    if (double.TryParse(value.ToString(), out d))
        return new Thickness(0, 0, 0, d);
    else
        return new Thickness();
}
于 2009-09-08T18:41:26.747 に答える