xamarin与listview和复选框形成实验室绑定问题

时间:2014-10-21 10:03:19

标签: android xamarin xamarin.forms

我遇到了与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 ();
        }
    }

1 个答案:

答案 0 :(得分:1)

试试这个:

chkInvite.SetBinding (CheckBox.DefaultTextProperty, "FullName", BindingMode.TwoWay);
chkInvite.SetBinding (CheckBox.CheckedProperty, "Selected", BindingMode.TwoWay);