如何将ObservableCollection绑定到自定义视图?
我已将自定义视图添加到网页:
MainPage.xaml:
<ContentPage.Content>
<vw:ResultsListView />
</ContentPage.Content>
在MainViewModel.cs中有以下对应的属性:
private ObservableCollection<FertInspectionResult> _ResultsItems;
public ObservableCollection<FertInspectionResult> ResultsItems
{
get => _ResultsItems;
set => SetProperty(ref _ResultsItems, value);
}
ResultListView是一个简单的集合视图:
<ContentView.Content>
<CollectionView ItemsSource="{Binding ResultsItems}">
<CollectionView.ItemTemplate>
<DataTemplate>
<Label Text="{Binding SEQ}"/>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</ContentView.Content>
我知道这是不正确的,但我无法找到一种方法来创建BindableProperty,以便填充CollectionView。
2条答案
按热度按时间uujelgoq1#
xaml中的
ResultsItems
与视图模型中的ResultItems
存在拼写错误。此外,如果<vw:ResultsListView />
包含您的集合,则应使用命名空间获取集合。23c0lvtd2#
您可以在Xamarin.Forms Bindable Properties中为自定义控件创建可绑定的属性,如下所示:
然后在MainPage.xaml中,可以使用创建的属性:
在ResultListView中,只需将CollectionView的BindingContext设置为ContentView本身:
现在,您可以将ViewModel中生成的ResultsItems绑定到ResultListView。
有关详细信息,您也可以参考ContentView Demo。