我的数据库中有一些控件,当应用程序从数据库中调用ID时,我会在布局中收到一些控件和位置。
我需要把它放在AbsoluteLayout
中,这些控件是Labels,BarGraphs和其他像这样的控件,但我不知道如何从我的ViewModel中实例化这些控件。
我有绝对布局,我正在创建ContentViews
列表,但是如何绑定此列表,或在AbsoluteLayout
中实例化?
更新
我制作了一个像这样的可绑定对象:
class BindableContentView : AbsoluteLayout
{
public static readonly BindableProperty ItemsProperty =
BindableProperty.Create(nameof(Items), typeof(ObservableCollection<ContentView>), typeof(BindableContentView), null,
propertyChanged: (b, o, n) =>
{
(n as ObservableCollection<ContentView>).CollectionChanged += (coll, arg) =>
{
switch (arg.Action)
{
case NotifyCollectionChangedAction.Add:
foreach (var v in arg.NewItems)
(b as BindableContentView).Children.Add((ContentView)v);
break;
case NotifyCollectionChangedAction.Remove:
foreach (var v in arg.NewItems)
(b as BindableContentView).Children.Remove((ContentView)v);
break;
}
};
});
public ObservableCollection<ContentView> Items
{
get { return (ObservableCollection<ContentView>)GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
}
public BindableContentView()
{ }
}
在XAML中我使用了这段代码:
<AbsoluteLayout x:Name="absLayout">
<objectlocal:BindableContentView Items="{Binding DynamicObjects, Mode=TwoWay}"/>
</AbsoluteLayout>
但它不起作用。