Пустое исключение для Telerik.UI.Xaml.Controls.Chart.DateTimeContinuousAxis.OnMajorStepUnitChanged

Мой код был разработан, чтобы сделать адаптивные макеты для моего приложения UWP. Мой код:

<Page x:Name="load"
x:Class="ServerMonitor.Views.SiteDetail"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:vm="using:ServerMonitor.ViewModels"
  xmlns:controls="using:Template10.Controls"
  xmlns:telerik="using:Telerik.UI.Xaml.Controls.Chart"
  xmlns:telerikPrimitives="using:Telerik.UI.Xaml.Controls.Primitives"
  xmlns:local1="using:ServerMonitor"
  mc:Ignorable="d" Loading="{x:Bind ViewModel.load_Loading}">


<Page.DataContext>
    <vm:SiteDetailViewModel x:Name="ViewModel"/>
</Page.DataContext>
<Page.Resources>
    <vm:Log10Convert x:Key="Log10Convert"/>
</Page.Resources>
<RelativePanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState>
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="600"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="HorizontalAxis.MajorStep" Value="{x:Bind ViewModel.Infos.FirstChartAxisProperties.Min.MajorStep,Mode=OneWay}"/>
                </VisualState.Setters>
            </VisualState>
            <VisualState>
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="1200"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="HorizontalAxis.MajorStep" Value="{x:Bind ViewModel.Infos.FirstChartAxisProperties.Mid.MajorStep,Mode=OneWay}"/>
                </VisualState.Setters>
            </VisualState>
            <VisualState>
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="1500"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="HorizontalAxis.MajorStep" Value="{x:Bind ViewModel.Infos.FirstChartAxisProperties.Max.MajorStep,Mode=OneWay}"/>
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

    <!--  header  -->
    <controls:PageHeader x:Name="pageHeader" Frame="{x:Bind Frame}"
                         RelativePanel.AlignLeftWithPanel="True"
                         RelativePanel.AlignRightWithPanel="True"
                         RelativePanel.AlignTopWithPanel="True" Text="SiteDetail Page" >
        <controls:PageHeader.PrimaryCommands>
            <AppBarButton x:Name="EditButton" Icon="Edit" Foreground="White"/>
            <AppBarButton x:Name="RefreshButton" Icon="Refresh" Foreground="white" Click="{x:Bind ViewModel.Refresh_Click}"/>
        </controls:PageHeader.PrimaryCommands>
        <controls:PageHeader.SecondaryCommands>
            <AppBarButton Label="Clear Log" x:Name="ClearLogButton" Click="{x:Bind ViewModel.ClearLog}"/>
        </controls:PageHeader.SecondaryCommands>
    </controls:PageHeader>

    <!--  content  -->
    <ScrollViewer Padding="24,24,24,0" RelativePanel.AlignBottomWithPanel="True"
                  RelativePanel.AlignLeftWithPanel="True"
                  RelativePanel.AlignRightWithPanel="True"
                  RelativePanel.Below="pageHeader"
                  IsScrollInertiaEnabled="True"
                  VerticalScrollBarVisibility="Auto">
        <StackPanel Orientation="Vertical">
            <Pivot Grid.Row="0" SelectedIndex="0" SelectionChanged="{x:Bind ViewModel.Pivot_SelectionChanged}">
                <PivotItem Header="Today">
                </PivotItem>
                <PivotItem Header="Three Days">
                </PivotItem>
                <PivotItem Header="Seven Days">
                </PivotItem>
            </Pivot>

            <StackPanel 
                        Margin="0,0,0,48">

                <ToggleSwitch x:Name="toggled" HorizontalAlignment="Right" IsOn="{x:Bind ViewModel.Infos.IsMonitor,Mode=TwoWay}" Toggled="{x:Bind ViewModel.test}">
                    <ToggleSwitch.OffContent>Close Monitor</ToggleSwitch.OffContent>
                    <ToggleSwitch.OnContent>Open Monitor</ToggleSwitch.OnContent>
                </ToggleSwitch>

                <telerik:RadCartesianChart x:Name="RequestTimeBarChar" 
                                           PaletteName="DefaultLight"
                                           Margin="0,10,0,10"
                                           Height="300"                                              
                                           >
                    <telerik:RadCartesianChart.Resources>
                        <local1:CustomConverter x:Key="Converter"/>
                        <local1:CustomConverterBrush x:Key="BrushConverter"/>
                    </telerik:RadCartesianChart.Resources>
                    <!--end-->

                    <telerik:RadCartesianChart.Annotations>
                        <telerik:CartesianGridLineAnnotation                                
                            Axis="{Binding Path=VerticalAxis, ElementName=RequestTimeBarChar}"
                            Value="{x:Bind ViewModel.Infos.MedianValue,Mode=TwoWay}"
                            Stroke="RoyalBlue"
                            StrokeThickness="3"
                            BorderBrush="Black"
                            BorderThickness="2"
                            />
                        <telerik:CartesianGridLineAnnotation                                 
                            Axis="{Binding Path=VerticalAxis, ElementName=RequestTimeBarChar}"
                            Value="{x:Bind ViewModel.Infos.AverageValue,Mode=TwoWay}"
                            Stroke="Purple"
                            StrokeThickness="3"
                            BorderBrush="Black"
                            BorderThickness="2"
                            />
                        <telerik:CartesianCustomAnnotation VerticalAlignment="Center" HorizontalAlignment="Right"
                                                                   VerticalOffset="200" HorizontalOffset="100"
                                                                   HorizontalAxis="{Binding Path=HorizontalAxis, ElementName=RequestTimeBarChar}"
                                                                   VerticalAxis="{Binding Path=VerticalAxis, ElementName=RequestTimeBarChar}"
                                            Content="This is custom annotation without ContentTemplate" />
                    </telerik:RadCartesianChart.Annotations>

                    <telerik:RadCartesianChart.HorizontalAxis>
                        <telerik:DateTimeContinuousAxis Maximum="{x:Bind ViewModel.Infos.MaxmumDatetime,Mode=OneWay}"
                                                        Minimum="{x:Bind ViewModel.Infos.MinmumDatetime,Mode=OneWay}"                                                           
                                                        GapLength="0.5"
                                                        MajorStep="{Binding Infos.FirstChartAxisProperties.Min.MajorStep,Mode=OneWay}"
                                                        MajorStepUnit="{Binding Infos.FirstChartAxisProperties.Min.MajorStepUnit1,Mode=OneWay}"
                                                        LabelFormat="{}{0,0:MM-dd HH:mm}"
                                                        x:Name="HorizontalAxis"
                                                        Title="Datetime of request"
                                                        />
                    </telerik:RadCartesianChart.HorizontalAxis>
                    <telerik:RadCartesianChart.VerticalAxis>
                        <telerik:LinearAxis Title="Request Interval(ln x)"
                                                    x:Name="VerticalAxis">
                        </telerik:LinearAxis>
                    </telerik:RadCartesianChart.VerticalAxis>
                    <!-- end -->

                    <telerik:RadCartesianChart.Behaviors>
                        <telerik:ChartTooltipBehavior>
                            <telerik:ChartTooltipBehavior.ContentTemplate>
                                <DataTemplate>
                                    <Border BorderBrush="#80D6F4" BorderThickness="1">
                                        <StackPanel Background="white">
                                            <TextBlock Text="{Binding DataPoint.Value, Converter={StaticResource Converter}, ConverterParameter=Value}" Foreground="#99441D"/>
                                            <TextBlock Text="{Binding DataPoint.Category, Converter={StaticResource Converter}, ConverterParameter=Category}" Foreground="#506005"/>
                                        </StackPanel>
                                    </Border>
                                    <!-- end -->
                                </DataTemplate>
                                <!--end-->
                            </telerik:ChartTooltipBehavior.ContentTemplate>
                            <!--end-->
                        </telerik:ChartTooltipBehavior>
                        <!--end-->
                    </telerik:RadCartesianChart.Behaviors>
                    <!--end-->
                    <telerik:RadCartesianChart.Grid>
                        <telerik:CartesianChartGrid MajorLinesVisibility="XY" StripLinesVisibility="XY">
                        </telerik:CartesianChartGrid>
                        <!--end-->
                    </telerik:RadCartesianChart.Grid>
                    <!--end-->
                    <telerik:BarSeries ItemsSource="{x:Bind Path=ViewModel.Infos.RequestTimeList,Mode=TwoWay}" 
                                       PaletteMode="Series" 
                                       >
                        <telerik:BarSeries.ValueBinding>
                            <telerik:PropertyNameDataPointBinding PropertyName="Request_time" />
                        </telerik:BarSeries.ValueBinding>
                        <telerik:BarSeries.CategoryBinding>
                            <telerik:PropertyNameDataPointBinding PropertyName="Create_time"/>
                        </telerik:BarSeries.CategoryBinding>
                    </telerik:BarSeries>
                </telerik:RadCartesianChart>
                <StackPanel HorizontalAlignment="Center"
                            Orientation="Horizontal"
                            Margin="0,24,0,24">
                    <TextBox Text="{x:Bind ViewModel.Infos.Median_string,Mode=TwoWay}" 
                                 Width="200" Height="80" 
                             Background="RoyalBlue" Foreground="White"
                             IsReadOnly="true"/>
                    <TextBox Text="{x:Bind ViewModel.Infos.Average_string,Mode=TwoWay}"
                                 Width="200" Height="80" 
                             Background="Purple" Foreground="White"
                             IsReadOnly="true"/>
                </StackPanel>

                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="3*"/>
                        <ColumnDefinition Width="2*"/>
                    </Grid.ColumnDefinitions>
                    <telerik:RadCartesianChart PaletteName="DefaultLight"
                                           Margin="0,10,0,10"                                               
                                           Height="300"
                                           Grid.Column="0">
                        <telerik:RadCartesianChart.HorizontalAxis>
                            <telerik:LinearAxis Title="Request Times"/>
                        </telerik:RadCartesianChart.HorizontalAxis>
                        <telerik:RadCartesianChart.VerticalAxis>
                            <telerik:CategoricalAxis Title="Request Status"/>
                        </telerik:RadCartesianChart.VerticalAxis>
                        <telerik:RadCartesianChart.Grid>
                            <telerik:CartesianChartGrid MajorLinesVisibility="X"
                                                    StripLinesVisibility="X"/>
                        </telerik:RadCartesianChart.Grid>
                        <telerik:BarSeries ItemsSource="{x:Bind Path=ViewModel.Infos.Re}"
                                       ShowLabels="True">
                            <telerik:BarSeries.ValueBinding>
                                <telerik:PropertyNameDataPointBinding PropertyName="Count"/>
                            </telerik:BarSeries.ValueBinding>
                            <telerik:BarSeries.CategoryBinding>
                                <telerik:PropertyNameDataPointBinding PropertyName="RequestStatus"/>
                            </telerik:BarSeries.CategoryBinding>
                        </telerik:BarSeries>
                    </telerik:RadCartesianChart>

                    <StackPanel Orientation="Vertical"
                                        Grid.Column="1">
                        <telerik:RadPieChart Height="300"
                                     PaletteName="DefaultDark"
                                     Width="250"
                                     x:Name="AnalysisPeiChart"
                                     Margin="0,10,0,10"
                                     >
                            <telerik:PieSeries ShowLabels="True"
                                       RadiusFactor="0.8"
                                       ItemsSource="{x:Bind Path=ViewModel.Infos.Pieinfo}">
                                <telerik:PieSeries.ValueBinding>
                                    <telerik:PropertyNameDataPointBinding PropertyName="Count"/>
                                </telerik:PieSeries.ValueBinding>
                                <telerik:PieSeries.LegendTitleBinding>
                                    <telerik:PropertyNameDataPointBinding PropertyName="Ry"/>
                                </telerik:PieSeries.LegendTitleBinding>
                            </telerik:PieSeries>
                        </telerik:RadPieChart>
                        <telerikPrimitives:RadLegendControl LegendProvider="{x:Bind Path=AnalysisPeiChart}">
                            <telerikPrimitives:RadLegendControl.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <StackPanel Orientation="Horizontal"/>
                                </ItemsPanelTemplate>
                            </telerikPrimitives:RadLegendControl.ItemsPanel>
                            <telerikPrimitives:RadLegendControl.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
                                        <Rectangle Fill="{Binding Fill}" Stroke="{Binding Stroke}"
                                                            StrokeThickness="1" Width="10" Height="10" />
                                        <TextBlock Text="{Binding Title}" Foreground="{Binding Fill}"
                                                            Margin="10" FontStyle="Normal"/>
                                    </StackPanel>
                                </DataTemplate>
                            </telerikPrimitives:RadLegendControl.ItemTemplate>
                        </telerikPrimitives:RadLegendControl>
                    </StackPanel>
                </Grid>

            </StackPanel>
            <StackPanel Grid.Row="1" 
                        Margin="0,48,0,0">
                <StackPanel Orientation="Horizontal"
                            HorizontalAlignment="Left">
                    <TextBox Text="WebSite URL: " BorderThickness="0" FontSize="20"/>
                    <HyperlinkButton Grid.Column="0" Grid.Row="0"
                                     IsEnabled="{x:Bind ViewModel.Infos.IsWebSite}"
                                     Grid.ColumnSpan="3" HorizontalAlignment="Center" 

                                     VerticalAlignment="Center" NavigateUri="{x:Bind ViewModel.Infos.Detail_Site.Site_address}" 
                                     Content="{x:Bind ViewModel.Infos.Detail_Site.Site_address}" FontSize="20" Foreground="#FFE61D1D"/>
                </StackPanel>
                <Grid BorderThickness="1">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="24"/>
                        <RowDefinition Height="24"/>
                        <RowDefinition Height="24"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition  Width="*"/>
                        <ColumnDefinition  Width="*"/>
                        <ColumnDefinition  Width="*"/>
                    </Grid.ColumnDefinitions>

                    <TextBox Grid.Column="0" Grid.Row="0" Text="Last Request" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0" IsReadOnly="True"/>
                    <TextBox Grid.Column="1" Grid.Row="0" Text="Status" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0" IsReadOnly="True"/>
                    <TextBox Grid.Column="2" Grid.Row="0" Text="Date" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0" IsReadOnly="True"/>
                    <Rectangle Fill="#aaa" VerticalAlignment="Top" Height="1" Grid.Row="0" Grid.ColumnSpan="3"/>
                    <TextBox Grid.Column="0" Grid.Row="1" Text="Previous" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0" IsReadOnly="True"/>
                    <TextBox Grid.Column="1" Grid.Row="1" Text="{x:Bind ViewModel.Infos.LastRequestWords,Mode=TwoWay}" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0" IsReadOnly="True"/>
                    <TextBox Grid.Column="2" Grid.Row="1" Text="{x:Bind ViewModel.Infos.LastRequest.Create_time,Mode=TwoWay}" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0" IsReadOnly="True"/>
                    <Rectangle Fill="#aaa" VerticalAlignment="Top" Height="1" Grid.Row="1" Grid.ColumnSpan="3"/>
                    <TextBox Grid.Column="0" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0"/>
                    <TextBox Grid.Column="1" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0"/>
                    <TextBox Grid.Column="2" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center" BorderThickness="0"/>
                </Grid>

                <TextBox Text="Contact" FontSize="20" BorderThickness="0"/>
                <Rectangle Fill="#aaa" VerticalAlignment="Top" Height="2" />

                <GridView>
                    <GridViewItem>
                        <TextBox IsReadOnly="True" Text="联系人模块"/>
                    </GridViewItem>
                </GridView>

            </StackPanel>
        </StackPanel>
    </ScrollViewer>
</RelativePanel>

И что меня прервало, так это то, что при запуске приложения всегда выдается исключение NullException. Однако я почти уверен, что произвел инициализацию переменных.

Вот мой код:

    public void ChangeStepUnitStep(int index)
    {
        switch (index)
        {
            case 0:
                Infos.FirstChartAxisProperties.Min.MajorStep = 6;
                Infos.FirstChartAxisProperties.Min.MajorStepUnit1 = TimeInterval.Hour;
                Infos.FirstChartAxisProperties.Mid.MajorStep = 4;
                Infos.FirstChartAxisProperties.Mid.MajorStepUnit1 = TimeInterval.Hour;
                Infos.FirstChartAxisProperties.Max.MajorStep = 2;
                Infos.FirstChartAxisProperties.Max.MajorStepUnit1 = TimeInterval.Hour;
                break;
            case 1:
                Infos.FirstChartAxisProperties.Min.MajorStep = 1.5;
                Infos.FirstChartAxisProperties.Min.MajorStepUnit1 = TimeInterval.Day;
                Infos.FirstChartAxisProperties.Mid.MajorStep = 1;
                Infos.FirstChartAxisProperties.Mid.MajorStepUnit1 = TimeInterval.Day;
                Infos.FirstChartAxisProperties.Max.MajorStep = 12;
                Infos.FirstChartAxisProperties.Max.MajorStepUnit1 = TimeInterval.Hour;
                break;
            case 2:
                Infos.FirstChartAxisProperties.Min.MajorStep = 3;
                Infos.FirstChartAxisProperties.Min.MajorStepUnit1 = TimeInterval.Day;
                Infos.FirstChartAxisProperties.Mid.MajorStep = 2;
                Infos.FirstChartAxisProperties.Mid.MajorStepUnit1 = TimeInterval.Day;
                Infos.FirstChartAxisProperties.Max.MajorStep = 1;
                Infos.FirstChartAxisProperties.Max.MajorStepUnit1 = TimeInterval.Day;
                break;
            default:
                break;
        }
    }

    public void load_Loading(FrameworkElement sender, object args)
    {
        Infos.FirstChartAxisProperties = new FirstChartAxisProperties();
        ChangeStepUnitStep(0);
        Debug.WriteLine("load_Loading() Excute!");
    }

Я понятия не имею, чтобы справиться с этим. Кто-нибудь может мне помочь? Пожалуйста!

0 ответов

Другие вопросы по тегам