1

我正在尝试将一些图表绑定到字符串、int 的字典,并且我正在使用 view-viewmodel 模式。

我已经将字典绑定到条形图,但现在我想将它绑定到 WPF 工具包中的树形图控件。它没有真正记录在网上任何地方,除了silverlight:http: //blogs.msdn.com/marlat/archive/2009/07/10/treemap-control-comes-to-silverlight-toolkit.aspx

谁能帮我修复对我的控件的正确绑定?

<DataVisualization:TreeMap x:Name="treeMapControl">

                            <DataVisualization:TreeMap.Interpolators>

                                <DataVisualization:SolidColorBrushInterpolator TargetName="itemBorder" TargetProperty="Background"

                                       DataRangeBinding="{Binding Source={StaticResource ShellVM},Path=CustodianEmailCount.Value}" From="Blue" To="Magenta" />

                                <DataVisualization:DoubleInterpolator TargetName="textBlk" TargetProperty="FontSize"

                                       DataRangeBinding="{Binding Source={StaticResource ShellVM},Path=CustodianEmailCount.Value}" From="8" To="15" />

                            </DataVisualization:TreeMap.Interpolators>



                            <DataVisualization:TreeMap.ItemDefinition>

                                <DataVisualization:TreeMapItemDefinition ItemsSource="{Binding Source={StaticResource ShellVM},Path=CustodianEmailCount.Key}" ValueBinding="{Binding Source={StaticResource ShellVM},Path=CustodianEmailCount.Value}" ChildItemPadding="1">

                                    <DataTemplate>

                                        <Border x:Name="itemBorder" BorderBrush="Black" BorderThickness="1" ToolTipService.ToolTip="{Binding ToolTip}">

                                            <TextBlock x:Name="textBlk"  Foreground="White" Text="{Binding Source={StaticResource ShellVM},Path=CustodianEmailCount.Key}" VerticalAlignment="Center" Margin="2,2,0,0"

                                   TextWrapping="Wrap" TextAlignment="Center"/>

                                        </Border>

                                    </DataTemplate>

                                </DataVisualization:TreeMapItemDefinition>

                            </DataVisualization:TreeMap.ItemDefinition>

                        </DataVisualization:TreeMap>
4

1 回答 1

0

问题是您一直在可能导致的每个项目上调用“Binding Source = {StaticResource ShellVM}”(取决于您的实现)。无论如何,这并不是在实现 MVVM 时使用它的正确方法。正确的做法是设置父亲的容器(如果你正在实现 MVVM,甚至是完整的视图) DataContext ,这会导致它的叶子继承 VM:

DataContext={Binding Source={StaticResource ShellVM}

然后例如:

Text = {Binding CustodianEmailCount.Key}
于 2011-12-27T06:21:29.217 回答