2017-01-23 56 views
0

我有一个自定义控件,基本上是一个stacklayout,我可以绑定一个串联的字符串,并将其分解为多个对象,如标签列表。xamarin表单自定义控件

public void Render() 
     { 
      if (ItemsSource == null) 
       return; 

      this.Orientation = Orientation == StackOrientation.Vertical ? StackOrientation.Vertical : StackOrientation.Horizontal; 
      this.Margin = new Thickness (0, 0, 0, 0); 

      List<string> items = ItemsSource.Split('|').ToList(); 
      foreach (var item in items) 
      { 
       var frame = new Frame(); 
       frame.BindingContext = item; 
       frame.BackgroundColor = Color.FromHex("#FCFACF"); 
       frame.OutlineColor = Color.FromHex("#D0C0AD"); 
       frame.HasShadow = false; 
       frame.Padding = new Thickness(4, 2, 4, 0); 
       var label = new Label(); 
       label.Text = "{Binding}"; 
       label.FontSize = 10; 
       label.Parent = frame; 
       Children.Add(frame); 
      } 
     } 

,但我似乎无法得到这个权利,我如何添加一个标签,可以是一个框架的孩子,我怎么能解决我的结合,截至目前,如果我的标签添加到堆叠布局的子标签的文本是{binding},而不是实际的文本。

有人可以帮助我这个。如果我在XAML中添加了一个带有datatemplate和viewcell的ItemTemplate,但我不想在XAML中完成此操作,因为我希望在其他视图中重用所有这些。

回答

0

帧Content属性

Frame.Content = label; 

要分配代码的绑定,使用

label.SetBinding(Label.TextProperty, new Binding(".")); 
+0

完美的感谢! –