private void Refresh(IMsaItem msaData) { InvalidateArrange(); UpdateLayout(); if (msaData.AppraiserPartAverages != null && msaData.AppraiserPartAverages.Count > 0) { AppraiserPartTable.ItemsSource = PrepareAppraiserPartData(msaData); CreateAppraiserPartTableColumns(msaData); BuildChart(msaData); } if (msaData.PartAverages != null) { PartAveragesTable.ItemsSource = new List<PartAveragesInfo> { msaData.PartAverages }; CreatePartAveragesTableColumns(msaData); } }
private IEnumerable<AverageRangeTableData> PrepareAppraiserPartData(IMsaItem msaData) { var list = new List<AverageRangeTableData>(); foreach (AppraiserPartStatEdit item in msaData.AppraiserPartAverages) { list.Add(new AverageRangeTableData { Appraiser = item.Appraiser, AggregationType = AggregationTypes.Average, PartValues = item.PartValues.Select(x => x.PartAverageValue).ToList() }); list.Add(new AverageRangeTableData { Appraiser = item.Appraiser, AggregationType = AggregationTypes.Range, PartValues = item.PartValues.Select(x => x.PartRangeValue).ToList() }); } return list; }
private void CreateAppraiserPartTableColumns(IMsaItem msaData) { var headerCellStyle = Resources["ThinColumnHeaderStyle"] as Style; foreach (GridViewDataColumn column in AppraiserPartTable.Columns) { column.DataMemberBinding = null; column.ClearValue(GridViewBoundColumnBase.DataFormatStringProperty); } AppraiserPartTable.Columns.Clear(); //Add Appraiser column AppraiserPartTable.Columns.Add(new GridViewDataColumn { DataMemberBinding = new Binding("Appraiser"), Header = LanguageService.Translate("Label_GageRRAppraiserColumnName"), UniqueName = "Appraiser", HeaderCellStyle = headerCellStyle }); //Add Value column AppraiserPartTable.Columns.Add(new GridViewDataColumn { DataMemberBinding = new Binding("AggregationType"), Header = LanguageService.Translate("Label_GageRRValueColumnName"), UniqueName = "Value", HeaderCellStyle = headerCellStyle }); //Add sample columns IList<string> partLabels; try { partLabels = msaData.AppraiserPartAverages[0].PartValues.Select(x => x.PartLabel).ToList(); } catch (Exception) { return; } for (int i = 0; i < partLabels.Count; i++) { var columnHeader = partLabels[i]; var column = new GridViewDataColumn { DataMemberBinding = new Binding(string.Format(CultureInfo.InvariantCulture, "PartValues[{0}]", i)), Header = columnHeader, UniqueName = string.Format(CultureInfo.InvariantCulture, "_{0}", columnHeader), HeaderCellStyle = headerCellStyle }; BindingOperations.SetBinding(column, GridViewBoundColumnBase.DataFormatStringProperty, new Binding("NumberOfDecimals") { Source = DataContext, Converter = new NumericFormatConverter(), ConverterParameter = "Standard" }); AppraiserPartTable.Columns.Add(column); } }
private void BuildChart(IMsaItem msaData) { var strokeColor = ColorUtilities.RGBtoHSL(Color.FromArgb(0xFF,0xD5,0x00,0x00)); var numberOfAppraisers = msaData.AppraiserPartAverages.Count; Chart.Series.Clear(); for (int i = 0; i < numberOfAppraisers; i++) { Chart.Series.Add(new LineSeries { ItemsSource = msaData.AppraiserPartAverages[i].PartValues, CategoryBinding = new PropertyNameDataPointBinding("PartLabel"), ValueBinding = new PropertyNameDataPointBinding("PartAverageValue"), Stroke = new SolidColorBrush(ColorUtilities.HSLtoRGB(strokeColor)), StrokeThickness = 2, LegendSettings = new SeriesLegendSettings { Title = msaData.AppraiserPartAverages[i].Appraiser } }); strokeColor.H += 0.29; } }