【发布时间】:2014-08-07 07:33:44
【问题描述】:
一旦 VariableSizedWrapGrid 渲染了它的内容,有没有办法刷新它的布局,以便它重新渲染并重新应用大小(如果它们发生了变化)?
例如,第一项的大小是其余项的两倍,然后我更改视图模型中的列和行跨度值。现在我想调用网格重新渲染。
【问题讨论】:
标签: xaml winrt-xaml
一旦 VariableSizedWrapGrid 渲染了它的内容,有没有办法刷新它的布局,以便它重新渲染并重新应用大小(如果它们发生了变化)?
例如,第一项的大小是其余项的两倍,然后我更改视图模型中的列和行跨度值。现在我想调用网格重新渲染。
【问题讨论】:
标签: xaml winrt-xaml
这里有一个简单的方法:
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
祝你好运!
【讨论】: