WPF图表工具包。将ColumnData中的标签内容绑定到ViewModel DataPoint属性

时间:2017-09-19 14:09:37

标签: c# wpf wpftoolkit

我有一个包含数据点和一些额外信息的扩展ObservableCollection

public class ExtendedCollection : ObservableCollection<KeyValuePair<string, KeyValuePair<string,int>>>
{

}

然后我还有一个ViewModel持有ColumnSeries使用此ExtendedCollection

private ExtendedCollection columnValues = new ExtendedCollection();
public ExtendedCollection ColumnValues
{
    get
    {
        return columnValues;
    }
    set
    {
        columnValues = value;
        PropChanged("ColumnValues");
    }
}

最后,我正在尝试展示收藏品&#39; Value.Key位于每个数据点列

中模板化的标签上
<chartingToolkit:ColumnSeries Name="columnSeries" DependentValuePath="Value.Value" IndependentValuePath="Key" ItemsSource="{Binding ColumnValues}">
    <chartingToolkit:ColumnSeries.DataPointStyle>
        <Style TargetType="chartingToolkit:ColumnDataPoint">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="chartingToolkit:ColumnDataPoint">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="30" />
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>
                            <Label Grid.Row="0" Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type chartingToolkit:ColumnSeries}},Path=DataContext.ColumnValues.Value.Key, Mode=TwoWay}"></Label>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </chartingToolkit:ColumnSeries.DataPointStyle>
</chartingToolkit:ColumnSeries>

我为Binding Label尝试了很多不同的Content,但都没有效果。如何将ContentValue.Key

ColumnDataPoint相关联

1 个答案:

答案 0 :(得分:1)

ExtendedCollection属性没有Value属性,但该列的DataContext包含:

<Label Grid.Row="0" Content="{Binding Value.Key}"></Label>