Example #1
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            DataGridLengthConverter dglc = new DataGridLengthConverter();
            double val = (double)value;

            return(dglc.ConvertFrom(val));
        }
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            DataGridLengthConverter converter = new DataGridLengthConverter();
            var res = converter.ConvertFrom(value);

            return(res);
        }
        private static void AddColumns(DataGrid dataGrid, IEnumerable columns)
        {
            foreach (var column in columns)
            {
                var desc                    = column as IColumnDescriptionVm;
                var template                = desc?.Template;
                var cellTemplate            = dataGrid.FindResource(new DataTemplateKey(template.GetType())) as DataTemplate;
                var dataGridLengthConverter = new DataGridLengthConverter();
                var customBoundColumn       = new CustomBoundColumn(desc)
                {
                    Header              = column,
                    CellTemplate        = cellTemplate,
                    CellEditingTemplate = GetAttachedCellEditingTemplate(dataGrid),
                    // MappedValueCollection = GetMappedValues(dataGrid),
                };
                if (desc.Width != null)
                {
                    customBoundColumn.Width = (DataGridLength)dataGridLengthConverter.ConvertFrom(null, CultureInfo.InvariantCulture, desc.Width);
                }
                else
                {
                    customBoundColumn.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
                }
                if (desc.CanSort)
                {
                    customBoundColumn.HeaderTemplate = GetSortingHeaderTemplate(dataGrid);
                }
                else
                {
                    customBoundColumn.HeaderTemplate = GetHeaderTemplate(dataGrid);
                }
                if (desc.HasOverlook)
                {
                    customBoundColumn.CellStyle = dataGrid.FindResource("OverlookCellStyle") as Style;
                }

                if (desc.InsertBefore)
                {
                    dataGrid.Columns.Insert(dataGrid.FrozenColumnCount, customBoundColumn);
                }
                else
                {
                    dataGrid.Columns.Add(customBoundColumn);
                }
            }
        }
        /// <summary>
        /// DataGrid绑定数据源描述
        /// </summary>
        /// <param name="headerName">列名</param>
        /// <param name="showAs">显示为</param>
        /// <param name="width">宽度</param>
        /// <param name="displayIndex">显示顺序</param>
        /// <param name="resourceKey">自定义列Key</param>
        public BindDescriptionAttribute(string headerName, ShowScheme showAs = ShowScheme.普通文本, string width = "Auto", int displayIndex = 0, string resourceKey = "")
        {
            HeaderName   = headerName;
            DisplayIndex = displayIndex;
            ResourceKey  = resourceKey;
            ShowAs       = showAs;
            var convert = new DataGridLengthConverter();

            Width = (DataGridLength)convert.ConvertFrom(width);
            var gridCOnvert = new GridLengthConverter();

            CloumnWidth = (GridLength)gridCOnvert.ConvertFrom(width);

            if (showAs == ShowScheme.自定义 && string.IsNullOrWhiteSpace(resourceKey))
            {
                throw new ArgumentException($"自定义列时需要指定{nameof(resourceKey)}参数!");
            }
        }
 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
 {
     return(_converter.ConvertFrom(value));
 }