Winrt Xaml Toolkit绑定到控件的子属性

时间:2015-10-05 18:41:03

标签: c# xaml windows-runtime winrt-xaml-toolkit

我正在使用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,但无法获取子属性。

2 个答案:

答案 0 :(得分:0)

您是否尝试设置Name的{​​{1}}并按PieSeries绑定?

以下代码的示例片段:

ElementName

答案 1 :(得分:0)

如果您调试PieSeries的可视树 - 您会看到DataContext的{​​{1}}是LegendItem而不是您的项目,所以它赢了&#39 ; t具有PieDataPoint属性。 Amount元素还有Title作为PieDataPoint,但DataContext部分使其Content="{TemplateBinding Content}"的{​​{1}}成为您的项目。也许那时你可以通过这样做来实现它:

DataContext