我遇到了与xamarin表单实验室(Xamarin-forms-labs)复选框控件的绑定问题。我有一个listview 指向联系人数据源(这是一个可观察的集合)。在列表视图中我有 自定义视图单元格“InviteItemCell”(请参阅下面的代码)。
绑定似乎不是双向工作,即在阅读时它能正确绑定 在选择联系人时,数据源并指示选择了哪些联系人 通过在UI中选中复选框,底层联系人对象属性不会更改。
这是listview的定义:
var stack = new StackLayout ();
list.ItemsSource = App.Service.Contacts;
list.ItemTemplate = new DataTemplate (typeof(InviteItemCell));
这是自定义viewcell:
public class InviteItemCell : ViewCell
{
public InviteItemCell ()
{
var chkInvite = new CheckBox ()
{
TextColor = Color.White
};
chkInvite.SetBinding (CheckBox.DefaultTextProperty, "FullName");
chkInvite.SetBinding (CheckBox.CheckedProperty, "Selected");
var layout = new StackLayout
{
Padding = new Thickness(20, 0, 0, 0),
Orientation = StackOrientation.Horizontal,
HorizontalOptions = LayoutOptions.StartAndExpand,
Children = {chkInvite}
};
View = layout;
}
protected override void OnBindingContextChanged ()
{
View.BindingContext = BindingContext;
base.OnBindingContextChanged ();
}
}
答案 0 :(得分:1)
试试这个:
chkInvite.SetBinding (CheckBox.DefaultTextProperty, "FullName", BindingMode.TwoWay);
chkInvite.SetBinding (CheckBox.CheckedProperty, "Selected", BindingMode.TwoWay);