Xamarin.Forms在ResourceDictionary控件中正确绑定方式

时间:2017-01-20 19:01:02

标签: xaml xamarin binding xamarin.forms

我在解决这个问题时遇到了问题。

<ResourceDictionary>
    <ViewCell x:Key="Separator">
        <Label Text="{Binding Title}" />
    </ViewCell>
</ResourceDictionary>

类Option包含一个名为Title的属性,该属性设置为任何文本。但是,以下代码无效。标签中不显示任何文字。文字只保留&#34; null&#34;。我做错了什么 - 我怎样才能正确设置Binding?

if (Resources.ContainsKey("Separator"))
{
    var cell = Resources["Separator"] as Cell;

    if (cell != null)
    {
        cell.BindingContext = option;

        section.Add(cell);
    }
}

1 个答案:

答案 0 :(得分:8)

ResourceDictionary中的对象只创建一次,并且每次使用它们时都会共享它们的实例。由于ViewCellBinding无法重复使用,因此不太可行。

ResourceDictionary中定义的内容是包含DataTemplate的{​​{1}},在这种情况下,它可以作为{{1}共享将为每次使用重新创建内容。