嘿,我有某种列属性列表,包含 HeaderName 等信息。我有一个绑定到项目列表的 Datagrid,列与列属性列表类似。
所以现在用户可以调整可见列的位置和宽度。这只能是 30 个可能的列中的 3 个。但我想将列表的“排序”部分保存到旧列表中。
好的,这是我的第一种方法:
var columns = grid.Columns.OrderBy(p => p.DisplayIndex);
var prop = DynamicManager.GetPropertyGridByTableNameGroupLanguage("Article", 1, 1);
var orderesProp = from o in columns
join i in prop
on o.Header.ToString() equals i.PropertyName
orderby o.DisplayIndex
select new TableProperty
{
DbPropertyType = i.DbPropertyType,
GroupingProperty = i.GroupingProperty,
Mandatory = i.Mandatory,
MandatoryDB = i.MandatoryDB,
MaxValue = i.MaxValue,
MaxValueDB = i.MaxValueDB,
MinValue = i.MinValue,
MinValueDB = i.MinValueDB,
PropertyImportCode = i.PropertyImportCode,
PropertyName = i.PropertyName,
ReadOnly = i.ReadOnly,
Searchable = i.Searchable,
UIPropertyName = i.UIPropertyName,
UIPropertyType = i.UIPropertyType,
Visible = i.Visible,
VisibleInGrid = i.VisibleInGrid,
Width = o.ActualWidth
};
当我第一次从列中选择时,我得到了正确排序的列表,但只有 31 个条目中的 3 个。当我先选择道具然后加入列时,我仍然有完整的列表,但没有按 displayindex 正确排序。
你有任何想法如何解决这个问题吗?