Xamarin.Forms自定义控件中的双向绑定

时间:2016-02-25 16:47:01

标签: xamarin xamarin.forms windows-10-universal

我在Xamarin中创建了一个自定义控件,它有一个双向Bindable属性。

public static BindableProperty SelectedItemsProperty =
            BindableProperty.Create<MultiSelectList, IEnumerable>(o => o.SelectedItems, default(IEnumerable), BindingMode.TwoWay,
                propertyChanged: OnSelectedItemsChanged);

        public IEnumerable SelectedItems
        {
            get { return (IEnumerable)GetValue(SelectedItemsProperty); }
            set { SetValue(SelectedItemsProperty, value); }
        }

但绑定仅适用于ViewModel到控件。如果控件中的属性值发生更改,则不会反映在绑定到此属性的viewmodel属性中。只是为了确保每当属性值在自定义控件中更改时,我都会分配新的Ienumerable对象。 我使用的是Xamarin.Forms版本2.0.1.6505 有关如何强制从控件到视图模型的绑定的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

您应该使用ObservableCollection而不是IEnumerable。 ObservableCollection将在更改时刷新UI,而不是IEnumerable。