Дайте серии его соответствующие панели в ChartControl - PullRequest
0 голосов
/ 07 октября 2019

У меня проблема с попыткой дать сериалу его соответствующие панели. Три серии появляются на одной панели. Вам нужно сделать это по-другому, когда вы используете SeriesItemTemplateSelector?

Ошибка: не удается найти источник для привязки со ссылкой «ElementName = pane2». BindingExpression: (без пути);DataItem = NULL;целевым элементом является AreaSeries2D (Name = '');Целевым свойством является «Панель» (тип «Объект»)

<dxc:ChartControl Background="{StaticResource ControlsPrincipalColor}" BorderBrush="{StaticResource ControlsPrincipalColor}">  

            <dxc:ChartControl.DataContext>  
                <vm:ChartViewModel/>  
            </dxc:ChartControl.DataContext>  

            <dxc:XYDiagram2D Margin="-68,0,-68,0" EnableAxisXNavigation="True" Background="Transparent">  

                <dxc:XYDiagram2D.SeriesItemsSource>  
                    <MultiBinding Converter="{StaticResource ChartModelConverter}">  
                        <Binding Source="{StaticResource Graphic}"/>  
                        <Binding RelativeSource="{x:Static RelativeSource.Self}" Path="DataContext"/>  
                    </MultiBinding>  
                </dxc:XYDiagram2D.SeriesItemsSource>  

                <dxc:XYDiagram2D.PanesPanel>  
                    <ItemsPanelTemplate>  
                        <Grid>  
                            <Grid.RowDefinitions>  
                                <RowDefinition Height="200"/>  
                                <RowDefinition Height="200"/>  
                                <RowDefinition Height="200"/>  
                            </Grid.RowDefinitions>  
                        </Grid>  
                    </ItemsPanelTemplate>  
                </dxc:XYDiagram2D.PanesPanel>  

                <dxc:XYDiagram2D.DefaultPane>  
                    <dxc:Pane x:Name="pane1" Grid.Row="0">  
                        <dxc:Pane.AxisXScrollBarOptions>  
                            <dxc:ScrollBarOptions Visible="False" />  
                        </dxc:Pane.AxisXScrollBarOptions>  
                    </dxc:Pane>  
                </dxc:XYDiagram2D.DefaultPane>  
                <dxc:XYDiagram2D.Panes>  
                    <dxc:Pane x:Name="pane2" Grid.Row="1">  
                        <dxc:Pane.AxisXScrollBarOptions>  
                            <dxc:ScrollBarOptions Visible="False" />  
                        </dxc:Pane.AxisXScrollBarOptions>  
                    </dxc:Pane>  
                    <dxc:Pane x:Name="pane3" Grid.Row="2"/>  
                </dxc:XYDiagram2D.Panes>  


                <dxc:XYDiagram2D.SeriesItemTemplateSelector>  
                    <templateselectors:ChartAreaTemplateSelector>  
                        <templateselectors:ChartAreaTemplateSelector.FirstTemplate>  
                            <DataTemplate>  
                                <dxc:AreaSeries2D Brush="{StaticResource CorporativeColor1}" Transparency="0.7" DataSource="{Binding Values}" ArgumentDataMember="Date" ValueDataMember="Value"/>  
                            </DataTemplate>  
                        </templateselectors:ChartAreaTemplateSelector.FirstTemplate>  

                        <templateselectors:ChartAreaTemplateSelector.SecondTemplate>  
                            <DataTemplate>  
                                <dxc:AreaSeries2D Brush="{StaticResource CorporativeColor2}" Transparency="0.7" DataSource="{Binding Values}" ArgumentDataMember="Date" ValueDataMember="Value" Pane="{Binding ElementName=pane2}"/>  
                            </DataTemplate>  
                        </templateselectors:ChartAreaTemplateSelector.SecondTemplate>  

                        <templateselectors:ChartAreaTemplateSelector.ThirdTemplate>  
                            <DataTemplate>  
                                <dxc:AreaSeries2D Brush="{StaticResource CorporativeColor3}" Transparency="0.7" DataSource="{Binding Values}" ArgumentDataMember="Date" ValueDataMember="Value" dxc:XYDiagram2D.SeriesPane="{Binding  ElementName=pane3}"/>  
                            </DataTemplate>  
                        </templateselectors:ChartAreaTemplateSelector.ThirdTemplate>  

                    </templateselectors:ChartAreaTemplateSelector>  
                </dxc:XYDiagram2D.SeriesItemTemplateSelector>  

                <dxc:XYDiagram2D.AxisX>  
                    <dxc:AxisX2D TickmarksMinorVisible="False" TickmarksVisible="False" GridLinesVisible="False" Visible="True" Alignment="Far" Brush="{x:Null}">  
                        <dxc:AxisX2D.DateTimeScaleOptions>  
                            <dxc:ContinuousDateTimeScaleOptions/>  
                        </dxc:AxisX2D.DateTimeScaleOptions>  
                        <dxc:AxisX2D.Label>  
                            <dxc:AxisLabel Foreground="{StaticResource PrincipalForeground}"/>  
                        </dxc:AxisX2D.Label>  
                    </dxc:AxisX2D>  
                </dxc:XYDiagram2D.AxisX>  

                <dxc:XYDiagram2D.AxisY>  
                    <dxc:AxisY2D Visible="True" GridLinesVisible="False" GridLinesMinorVisible="False" Interlaced="False"/>  
                </dxc:XYDiagram2D.AxisY>  


            </dxc:XYDiagram2D>  

        </dxc:ChartControl>

1 Ответ

0 голосов
/ 11 октября 2019

Чтобы решить эту проблему, установите свойство XYDiagram2D.PaneItemsSource, чтобы сгенерировать элементы панели диаграммы диаграммы из ViewModel и связать их с соответствующими элементами Series.

См. Как связать диаграмму с примером ViewModel , иллюстрирующим этот подход.

...