我的Xamarin.Forms项目包含F#中的共享PCL。我已经为我的listview实现了RefreshCommand,但它没有做任何事情。怎么写呢?
这是SomeView.xaml的ListView的一部分:
<ListView x:Name="someList"
IsPullToRefreshEnabled="true"
RefreshCommand="{Binding LoadListCommand}">
这是我的SomePage.fs:
type SomePage() =
inherit ContentPage()
let _ = base.LoadFromXaml(typeof<SomePage>)
let someList = base.FindByName<ListView>("someList")
do someList.ItemsSource <- sList
let someFun arg =
someList.ItemsSource <- arg :: sList
someList.IsRefreshing <- false
member this.LoadListCommand = new Command(fun() -> someFun s3)
答案 0 :(得分:0)
如果您要使用data binding路线,那么您的sList
需要为Observable Collection
类型或实施INotifyCollectionChanged
[link]。通常,您希望拥有一个从View Model Base继承的View Model来实现您的需求。这本身就有点麻烦,我建议您使用和现有的nuget包一样FSharp.ViewModule
并结帐一些examples。
如果您不是,那么您可以通过路由事件直接绑定到UI。 xaml对此有点不同。 Routed Events In Xaml