【发布时间】:2018-11-21 01:37:03
【问题描述】:
我有一个通用的网格列表控件。这让我绑定了项目源和项目模板,它将根据项目数或用户设置行和列的方式生成列和行。它完美到这里。它支持我需要的所有泛型。
现在问题部分: 我有一个 ContentView 将用作网格的项目模板。此模板将用于多种数据类型。我能够正确地做到这一点。现在我有一个数据类型,如果第一个单元格满足特定条件,它应该有 RowSpan:下面的代码完美。它完美地创建了 RowSpan。
bool isYearBuilt = false;
bool isAny = false;
public FilterItemView()
{
InitializeComponent();
}
protected override void OnBindingContextChanged()
{
base.OnBindingContextChanged();
var context = BindingContext as PropertyFilterItem;
if (context == null)
return;
if(context.FilterType==PropertyFilterTypes.YearBuilt)
{
if(context.IsAny)
{
isYearBuilt = true; isAny = true;
}
}
}
protected override void OnParentSet()
{
base.OnParentSet();
GridList grid = this.Parent as GridList;
if (grid == null)
return;
if(isYearBuilt && isAny)
{
Grid.SetRowSpan(this, 2);
}
}
这些是图像;这将更完美地描述它: 这是基于上述代码的外观。我们可以看到它正在创建 RowSpan。
唯一的问题是 - 在设置 RowSpan 时,它不会刷新后续单元格。因为,我在创建网格和所有单元格之后在运行时应用 RowSpan。如何刷新 Grid 和其他剩余单元格以移动到自己的单元格?
谢谢你帮助我。
【问题讨论】:
标签: xamarin.forms