我在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 有关如何强制从控件到视图模型的绑定的任何帮助吗?
答案 0 :(得分:0)
您应该使用ObservableCollection而不是IEnumerable。 ObservableCollection将在更改时刷新UI,而不是IEnumerable。