一旦VariableSizedWrapGrid呈现了其内容,是否有办法刷新其布局,以便重新呈现并重新应用大小(如果已更改)?
例如,第一项是其余项的两倍,然后我更改了视图模型中的列和行跨度值。现在我想调用网格来重新渲染。
答案 0 :(得分:0)
这是一个简单的方法:
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();
}
我将其集成到自定义网格中:http://codepaste.net/aopvks
祝你好运!