我有一个包含许多列的可分组列表视图,我希望每个列都按照数组定义的范围进行分组。
目前我必须写:
_priceColumn.GroupItemAccessor = new ColumnItemValueAccessor(GetPriceGroupValueFromItem)
Decimal[] mSplitters = { 1000000, 10000000, 100000000, 1000000000, 10000000000 };
private Object GetPriceGroupValueFromItem(Object o)
{
decimal? price = ((Ticker)o).Price;
if (price == null)
{
return "Null";
}
int cnt = mSplitters.Length;
for (int i = 0; i < cnt; i++)
{
if (i == cnt - 1 && (price > mSplitters[i]))
return $"Price > ({mSplitters[i].ShortFormat()})";
if (price < mSplitters[i])
{
if (i > 0)
return $"Price ({mSplitters[i - 1].ShortFormat()} - {mSplitters[i].ShortFormat()})";
else
return $"Price < ({mSplitters[i].ShortFormat()})";
}
}
return "Error";
}
需要复制和调整每个列的大量代码。
我想要的是:
_priceColumn.GroupItemAccessor =
new ColumnItemValueAccessor(Helpers.CreateGroupValueDelegate(Ticker.Price, mSplittersToGroupBy, "Price", FormatExtensionMethodToUse))
我需要通过“Price”和FormatExtensionMethodToUse为它创建正确的字符串或“Price”,“24h High”,“Change”等列
如果它有帮助,我在这里使用的ListView就是这个https://www.codeproject.com/Articles/20052/Outlook-Style-Grouped-List-Control
我希望任何人都可以帮助并停止杂乱的复制和粘贴。
这个问题与另一个关于代表比较的方法有关,我决定单独发布,以避免发布凌乱的第一篇文章。
Btw:如果有人知道更好的免费(最好是wpf)listview支持嵌套组,并通过拖动列标题轻松拖放分组,请告诉我。