В Xaml, предположит, что у меня есть CollectionViewSource кто есть источник установлен на наблюдаемые коллекции объектов типа ордена:WPF: CollectionViewSource размещая сгруппирован по свойству
public class Order
{
public int ContractID
{
get;
set;
}
public double? Price
{
get;
set;
}
public OrderSide Side
{
get;
set;
}
}
public enum OrderSide
{
BID,
ASK
}
Тендерного порядок есть порядок, кто Side недвижимость BID, спросить - СПРОСИТЬ. Проблема заключается в том, что мне нужно заказы, которые будут отображаться в текущем формате
Grouped by ContractID
Bids (Descending) Asks (Ascending)
Более конкретно, проблема заключается в том, что мне нужно на покупку и продажу, которые будут отображаться бок о бок.
Так, например, с помощью следующей коллекции,
var orders = new List<Order>()
{
new Order(){ContractID=1,Price=10,Side=OrderSide.BID},
new Order(){ContractID=1,Price=11,Side=OrderSide.ASK},
new Order(){ContractID=1,Price=9,Side=OrderSide.BID},
new Order(){ContractID=1,Price=11.5,Side=OrderSide.ASK},
new Order(){ContractID=2,Price=20,Side=OrderSide.BID},
new Order(){ContractID=2,Price=24,Side=OrderSide.ASK},
new Order(){ContractID=2,Price=21,Side=OrderSide.BID}
};
Было бы визуализируется как
1
10 11
9 11.5
2
21 24
20
Я предполагаю, что мне нужно использовать комбинацию отфильтрованного CollectionViewSource и datatemplateselectors .. ?
В качестве дополнительного бонуса, я хотел бы иметь возможность отображать лучшую ставку и лучше всего спросить в строке группировки. Таким образом, используя одни и те же данные, что бы визуализируется как
1 10 11
10 11
9 11.5
2 21 24
21 24
20
Любая помощь очень ценится -
Благодарим за это - сделаем трюк. Угадайте, что я надеюсь сохранить базовый источник данных как можно более простым (ObservableCollection), и пусть какое-то вспомогательное волшебство заменяет процедурный код. –
2009-07-07 14:52:24