如何使用F#

时间:2016-06-30 13:14:59

标签: listview f# xamarin.forms

我的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)

1 个答案:

答案 0 :(得分:0)

如果您要使用data binding路线,那么您的sList需要为Observable Collection类型或实施INotifyCollectionChanged [link]。通常,您希望拥有一个从View Model Base继承的View Model来实现您的需求。这本身就有点麻烦,我建议您使用和现有的nuget包一样FSharp.ViewModule 并结帐一些examples

如果您不是,那么您可以通过路由事件直接绑定到UI。 xaml对此有点不同。 Routed Events In Xaml