我有一个自定义控件,基本上是一个可以绑定连接字符串的stacklayout,并将它分解为多个对象,如标记列表。
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);
}
}
但我似乎无法做到这一点,如何添加一个标签作为一个框架的孩子,如何修复我的绑定,如目前我添加标签给孩子们stacklayout标签的文本是{binding}而不是实际文本。
有人可以帮我解决这个问题。如果我在XAML中添加了带有datatemplate和viewcell的ItemTemplate,我就完成了所有这些工作,但我不想在XAML中完成这项工作,因为我想在其他视图中重用所有这些。
答案 0 :(得分:0)
框架具有内容属性
Frame.Content = label;
要在代码中指定绑定,请使用
label.SetBinding(Label.TextProperty, new Binding("."));