1

いくつかの図をstring、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 に答える