2017-04-13 85 views
0

我試圖在corradocavalli/Corcav.Behaviors上使用Xamarin.Forms行爲,但是我無法正確地將 ItemTapped事件綁定到ViewModelXamarin.Forms ListView ItemCapped Corcav.Behaviors無法正常工作?

在我的ListView我使用: -

<behaviors:EventToCommand 
    BindingContext="{behaviors:RelativeContext Name=MyPageName}" 
    EventName="ItemTapped"         
    CommandName="OnItemSelected"        
    PassEventArgument="True" 
/> 

,並在我的視圖模型我使用: -

public Command<ItemTappedEventArgs> OnItemSelected { get; private set; } 

構造: -

this.OnItemSelected = 
     new Command<ItemTappedEventArgs>(async (e) => await MyHandlerForOnItemSelected(e)); 

和最後: -

private async Task MyHandlerForOnItemSelected(ItemTappedEventArgs e) 
{ 
    .... 
} 

xaml標記導致應用程序不啓動,並掛起,因爲我明明做錯了什麼。

任何想法?

+0

你有什麼錯誤嗎?他們說什麼? –

+0

@GeraldVersluis它只是掛起了應用程序,並沒有加載xaml頁面。當我刪除xaml中的行爲標記時,應用程序將顯示該頁面。 – Johnny

+0

請檢查應用程序輸出窗口,可能是有什麼東西 –

回答

0
<ListView ItemsSource="{Binding Items}"> 
      <behaviors:Interaction.Behaviors> 
      <behaviors:BehaviorCollection> 
       <behaviors:EventToCommand 
        BindingContext="{behaviors:RelativeContext MPage}" 
        EventName="ItemTapped" 
        CommandName="OnItemSelected" 
        PassEventArgument="True"/> 
      </behaviors:BehaviorCollection> 
      </behaviors:Interaction.Behaviors> 
    </ListView> 

此代碼與您共享的代碼一起工作良好,能夠處理itemtapped事件。

+0

無論出於何種原因,代碼稍後纔開始工作。 Ahhh Xamarin發展之美: - D. – Johnny