winrt xaml toolkit charts 동적 차트 추가 Error HRESULT E_FAIL has been returned from a call to a COM componen

우선 인용 컨트롤이 필요합니다.
WinRTXamlToolkit、WinRTXamlToolkit.Controls.DataVisualization
프런트 XAML:
xmlns:charting="using:WinRTXamlToolkit.Controls.DataVisualization.Charting"
 <charting:Chart
                x:Name="Stacked100Area"
                Title=""
                Margin="0,0">
 </charting:Chart>

백그라운드:
            //Stacked100AreaSeries Stacked100LineSeries StackedAreaSeries StackedLineSeries  ( (Series), Series.Clear()), 
            // stacked100Area
            Stacked100AreaSeries stacked100Area = new Stacked100AreaSeries();

            // stacked100Area SeriesDefinitions , for 
            SeriesDefinition s = new SeriesDefinition();
            s.Title = chartListDic[i].First().Description;
            s.ItemsSource = chartListDic[i];
            s.IndependentValueBinding = new Binding { Path = new PropertyPath("Name") };
            s.DependentValueBinding = new Binding { Path = new PropertyPath("Value") };
            s.IsTapEnabled = true;
            stacked100Area.SeriesDefinitions.Add(s);

            // stacked100Area Chart Stacked100Area
            Stacked100Area.Series.Clear();
            hideAllFilpButThis(Stacked100AreaFlip);
            Stacked100Area.Title = chartListDic[0].First().Title;
            Stacked100Area.Series.Add(stacked100Area);

다음과 같은 오류가 발생합니다.
System.Exception at Windows.UI.Xaml.UIElement.Measure(Size availableSize) at WinRTXamlToolkit.Controls.DataVisualization.Charting.Primitives.EdgePanel.MeasureOverride(Size constraint) at Windows.UI.Xaml.FrameworkElement.MeasureOverride(Size availableSize)

"Error HRESULT E_FAIL has been returned from a call to a COM component."

솔루션:
Stacked100AreaSeries Stacked100LineSeries StackedAreaSeries StackedLineSeries 상위 컨테이너 초기화 시 필요한 내용(Series)을 주고 사용할 때 Series를 지울 수 있습니다.Clear(), 그렇지 않으면 오류가 발생합니다.
xmal 페이지에서 Stacked100Area 초기화에 charting:Stacked100AreaSeries를 추가합니다.
            <charting:Chart
                x:Name="Stacked100Area"
                Title=""
                Margin="0,0">
                <charting:Stacked100AreaSeries>
                    <charting:SeriesDefinition
                        DependentValuePath="Value"
                        IndependentValuePath="Name"
                        IsTapEnabled="True"
                        Title="" />
                </charting:Stacked100AreaSeries>
            </charting:Chart>

그리고 추가할 때 charting:Stacked100AreaSeries를 지우고 동적 그래프를 추가합니다. Stacked100AreaSeries
                Stacked100Area.Series.Clear();// charting:Stacked100AreaSeries
                Stacked100Area.Series.Add(...);// Stacked100AreaSeries

참고:

UnhandledException while using chart from winrt xaml toolkit

좋은 웹페이지 즐겨찾기