@DongXu: Ваше решение сработало и для меня. Вот версия Xamarin.iOS , если она:
public class TopAlignedCollectionViewFlowLayout : UICollectionViewFlowLayout
{
public override UICollectionViewLayoutAttributes[] LayoutAttributesForElementsInRect(CGRect rect)
{
if (base.LayoutAttributesForElementsInRect(rect) is UICollectionViewLayoutAttributes[] attrs)
{
// Find all the cells and group them together by the rows they appear on
var cellsGroupedByRow = attrs
.Where(attr => attr.RepresentedElementCategory == UICollectionElementCategory.Cell)
// The default flow layout aligns cells in the middle of the row.
// Thus, cells with the same Y center point are in the same row.
// Convert to int, otherwise float values can be slighty different for cells on the same row and cause bugs.
.GroupBy(attr => Convert.ToInt32(attr.Frame.GetMidY()));
foreach (var cellRowGroup in cellsGroupedByRow)
{
TopAlignCellsOnSameLine(cellRowGroup.ToArray());
}
return attrs;
}
return null;
}
private static void TopAlignCellsOnSameLine(UICollectionViewLayoutAttributes[] cells)
{
// If only 1 cell in the row its already top aligned.
if (cells.Length <= 1) return;
// The tallest cell has the correct Y value for all the other cells in the row
var tallestCell = cells.OrderByDescending(cell => cell.Frame.Height).First();
var topOfRow = tallestCell.Frame.Y;
foreach (var cell in cells)
{
if (cell.Frame.Y == topOfRow) continue;
var frame = cell.Frame;
frame.Y = topOfRow;
cell.Frame = frame;
}
}
}
Хорошие новости (по крайней мере, для EF4). Карл Перри сегодня опубликовал серию статей в блоге команды ADO.NET, в которых подробно описаны некоторые изменения, которые значительно облегчат жизнь. http://blogs.msdn.com/adonet/archive/2009/06/22/announcing-entity-framework-feature-ctp-1.aspx
See http://dataguidance.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28998 for the official EF v4 Reference Implementation (features ASP.NET MVC front end).
Я думаю, что пройдет некоторое время, прежде чем EF догонит Hibernate.
Не могу предоставить вам код, но могу поделиться своим опытом. Недавно попробовал linq to sql в реальном проекте. Это было неплохо, но это не соответствовало дизайну, основанному на предметной области (или я был слишком глуп, чтобы заставить его выглядеть так, как мне хотелось бы).
Пробовал linq для сущностей. Короче - потрачено ~ 2 дня. Я оставил свою надежду после того, как несколько раз прошел через редактирование сопоставлений.
Я придерживался NHibernate (потому что он ничего не генерирует). Но все они разочаровываются в поддержке sproc.
Возможно, следующий выпуск будет лучше. На данный момент мне это кажется неуклюжим.
Я задал аналогичный вопрос здесь , который относится к ASP.NET MVC. У меня в основном тот же вопрос, что и у вас, потому что я не видел много «реальных» примеров того, как EF работает с веб-сценарием .NET.
Я сам ищу информацию о EF, и когда меня направили сюда, я обнаружил, что большинство ответов здесь датировано после выхода EF4 CTP4.
Возможно, кто-то, прочитав мой ответ, скажет, что функции в CTP4 тоже устарели, поэтому я бы посоветовал всем, кто хочет реализовать entity framework по-настоящему, заглянуть в ADO.net Team Blog и проверить последние новости
.