ねえ、HeaderName などの情報を含む、ある種の列プロパティ リストがあります。また、アイテムのリストにバインドされたデータグリッドがあります。列は、列プロパティ リストのようなものです。
これで、ユーザーは表示される列の位置と幅を調整できるようになりました。それは、可能な 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 つしかありません。最初に prop を選択してから列を結合すると、まだ完全なリストが表示されますが、displayindex で正しくソートされていません。
これを解決する方法はありますか?