Pergunta

Estou tentando ligar alguns diagramas a um dicionário de string, int, e estou usando um padrão de viewmodel.

Já vi o dicionário a um diagrama de barra, mas agora gostaria de prendê-lo ao controle Treemap do WPF Toolkit. Não está realmente documentado em nenhum lugar online, exceto aqui para Silverlight: http://blogs.msdn.com/marlat/archive/2009/07/10/treemap-control-comes-to-silverlight-toolkit.aspx

Alguém pode me ajudar a consertar a ligação certa ao meu controle?

<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>
Foi útil?

Solução

O problema é que você continua chamando "fonte de ligação = {staticResource shellvm}" em todos os itens que podem causar (depende da sua implementação). De qualquer forma, não é realmente a maneira correta de usá -lo durante a implementação do MVVM. A maneira certa de fazê -lo é definir o contêiner do pai (até da visão completa, se você estiver implementando MVVM) DataContext, o que resulta em sua folha para indicar a VM:

DataContext={Binding Source={StaticResource ShellVM}

E então, por exemplo:

Text = {Binding CustodianEmailCount.Key}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top