重新渲染VariableSizedWrapGrid

时间:2014-08-06 21:21:07

标签: xaml winrt-xaml

一旦VariableSizedWrapGrid呈现了其内容,是否有办法刷新其布局,以便重新呈现并重新应用大小(如果已更改)?

例如,第一项是其余项的两倍,然后我更改了视图模型中的列和行跨度值。现在我想调用网格来重新渲染。

1 个答案:

答案 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();
}
  1. 假设Windows.UI.Xaml.Controls.GridView为ItemsControl
  2. 假设Windows.UI.Xaml.Controls.VariableSizedWrapGrid为ItemPanel
  3.   

    我将其集成到自定义网格中:http://codepaste.net/aopvks

    祝你好运!