我正在使用Winrt Xaml工具包进行自定义PieChart
,并且我很难绑定到我的主要元素的属性。这是代码:
<Charting:Chart x:Name="PieChart" Title="Pie Title" Width="300" Height="300">
<Charting:Chart.Series>
<Charting:PieSeries Title="Population" IndependentValueBinding="{Binding Name}" DependentValueBinding="{Binding Amount}" IsSelectionEnabled="False" Width="125" Height="125" />
</Charting:Chart.Series>
<Charting:Chart.LegendStyle>
<Style TargetType="datavis:Legend">
<Setter Property="ItemContainerStyle" xmlns:series="using:WinRTXamlToolkit.Controls.DataVisualization.Charting">
<Setter.Value>
<Style TargetType="series:LegendItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="series:LegendItem">
<StackPanel Orientation="Horizontal">
<datavis:Title Content="{TemplateBinding Content}" />
<TextBlock Text="{Binding Amount}" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
</Style>
</Charting:Chart.LegendStyle>
</Charting:Chart>
在我的LegendItem
我有一个TextBlock
,我想要绑定DependentValueBinding
元素中的Charting:PieSeries
属性。我怎样才能做到这一点?我也尝试引用元素Self
,但无法获取子属性。
答案 0 :(得分:0)
您是否尝试设置Name
的{{1}}并按PieSeries
绑定?
以下代码的示例片段:
ElementName
答案 1 :(得分:0)
如果您调试PieSeries的可视树 - 您会看到DataContext
的{{1}}是LegendItem
而不是您的项目,所以它赢了&#39 ; t具有PieDataPoint
属性。 Amount
元素还有Title
作为PieDataPoint
,但DataContext
部分使其Content="{TemplateBinding Content}"
的{{1}}成为您的项目。也许那时你可以通过这样做来实现它:
DataContext