示例#1
0
        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);
            }
        }
示例#2
0
        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;
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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;
            }
        }