这里有一个简单的方法:
public void Update(GridView gridView)
{
if (!(gridView.ItemsPanelRoot is VariableSizedWrapGrid))
throw new ArgumentException("ItemsPanel is not VariableSizedWrapGrid");
foreach (var container in gridView.ItemsPanelRoot.Children.Cast<GridViewItem>())
{
var data = container.Content as Common.ModelBase;
VariableSizedWrapGrid.SetRowSpan(container, data.RowSpan);
VariableSizedWrapGrid.SetColumnSpan(container, data.ColSpan);
}
gridView.ItemsPanelRoot.InvalidateMeasure();
}
-
假设Windows.UI.Xaml.Controls.GridView为ItemsControl
-
假设Windows.UI.Xaml.Controls.VariableSizedWrapGrid为ItemPanel
我将其集成到自定义网格中,如下所示:
http://codepaste.net/aopvks
祝你好运!