2017-06-05 13 views
0

我創建了一個帶有listview和ISingleOperation數據刷新的窗體。ListView的刷新命令不能使用綁定的IRelayCommand

然後我在ViewModel中創建命令。

public IRelayCommand LoadInvoicesCommand 
    { 
     get 
     { 
      return GetCommand(() => Execution.ViewModelExecute(new LoadInvoicesOperation(_model), 10000)); 
     } 
    } 

ISingleOperation運作良好,並返回

new Result() { ResultAction = ResultType.None }; 

刷新操作綁定以及

RefreshCommand="{Binding LoadInvoicesCommand}" 

但刷新指標 「掛起」,而不是disapearing,這裏有什麼不好?

+0

你能發佈你的Lisview的XAML嗎? – apineda

回答

2

您需要將名爲IsRefreshingListView的第二個屬性綁定到ViewModel。這是一個布爾屬性,是一個負責告訴ListView刷新已經開始/完成的人。

一個ListView的例子XAML

<ListView 
    VerticalOptions="FillAndExpand" 
    IsPullToRefreshEnabled="true" 
    RefreshCommand="{Binding LoadInvoicesCommand}" 
    IsRefreshing="{Binding IsRefreshing, Mode=OneWay}" 
    ItemsSource="{Binding YourItemSource}" 
    ItemTemplate="{StaticResource ItemTemplate" /> 

您的視圖模型將需要一個名爲IsRefreshing的公共屬性,你會需要你的時候刷新命令完成此設置爲false

+0

謝謝你的幫助 – Horosho