0

下面的代码是什么意思,

var personDataTemplate = new DataTemplate(() =>
    {
        var grid = new Grid();
        ...
        var nameLabel = new Label { FontAttributes = FontAttributes.Bold };
        var ageLabel = new Label();
        var locationLabel = new Label { HorizontalTextAlignment = TextAlignment.End };

        nameLabel.SetBinding(Label.TextProperty, "Name");
        ageLabel.SetBinding(Label.TextProperty, "Age");
        locationLabel.SetBinding(Label.TextProperty, "Location");

        grid.Children.Add(nameLabel);
        grid.Children.Add(ageLabel, 1, 0);
        grid.Children.Add(locationLabel, 2, 0);

        return new ViewCell { View = grid };
    });

代码如何与以下实例一起运行,

new DataTemplate(() => { --- How the code runs here --- })

它像一个自调用函数吗?

4

1 回答 1

2

DataTemplate 的构造函数有一个接受委托的参数,可能类似于

public DataTemplate(Func<ViewCell> foo)

通过调用() => {}您定义匿名方法(lambda 表达式)。

在里面DataTemplate它被称为这样的地方:

ViewCell bar = foo();

你可以使用它来允许用户定义他们自己ViewCell应该在里面使用的实例。

于 2018-10-04T05:08:44.367 回答