WPF 图表工具包。将 ColumnDataPoint 中 Label 的内容绑定到 ColumnSeries ViewModel
WPF Chart Toolkit. Bind Label's content in ColumnDataPoint to ColumnSeries ViewModel
我有一个扩展的 ObservableCollection
,它包含数据点和一些额外的信息
public class ExtendedCollection : ObservableCollection<KeyValuePair<string, int>>
{
public string dateStamp { get; set; }
}
然后我还有一个 ViewModel 持有使用这个 ExtendedCollection
的 ColumnSeries
private ExtendedCollection columnValues = new ExtendedCollection();
public ExtendedCollection ColumnValues
{
get
{
return columnValues;
}
set
{
columnValues = value;
PropChanged("ColumnValues");
}
}
最后,我试图在每个数据点的列
中模板化的标签上显示集合的属性dateStamp
<chartingToolkit:ColumnSeries Name="columnSeries" DependentValuePath="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=dateStamp, Mode=TwoWay}"></Label>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</chartingToolkit:ColumnSeries.DataPointStyle>
</chartingToolkit:ColumnSeries>
我为 Label
的 Content
尝试了许多不同的 Binding
,但 none 有效
尝试将绑定路径更改为"DataContext.ColumnValues.dateStamp":
<Label Grid.Row="0" Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type chartingToolkit:ColumnSeries}},Path=DataContext.ColumnValues.dateStamp, Mode=TwoWay}" />
我有一个扩展的 ObservableCollection
,它包含数据点和一些额外的信息
public class ExtendedCollection : ObservableCollection<KeyValuePair<string, int>>
{
public string dateStamp { get; set; }
}
然后我还有一个 ViewModel 持有使用这个 ExtendedCollection
ColumnSeries
private ExtendedCollection columnValues = new ExtendedCollection();
public ExtendedCollection ColumnValues
{
get
{
return columnValues;
}
set
{
columnValues = value;
PropChanged("ColumnValues");
}
}
最后,我试图在每个数据点的列
中模板化的标签上显示集合的属性dateStamp
<chartingToolkit:ColumnSeries Name="columnSeries" DependentValuePath="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=dateStamp, Mode=TwoWay}"></Label>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</chartingToolkit:ColumnSeries.DataPointStyle>
</chartingToolkit:ColumnSeries>
我为 Label
的 Content
尝试了许多不同的 Binding
,但 none 有效
尝试将绑定路径更改为"DataContext.ColumnValues.dateStamp":
<Label Grid.Row="0" Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type chartingToolkit:ColumnSeries}},Path=DataContext.ColumnValues.dateStamp, Mode=TwoWay}" />