2016-06-21 4 views
1

내 프로젝트에는 목록보기가 있습니다. 이제는 SelectedItem 변경 사항을 듣는 것이 쉽습니다. 모든 자습서에는 해당 항목이 있지만 ItemTapped 이벤트를 사용할 때 아무 것도 찾을 수 없습니다.FreshMvvm의 ItemTapped 이벤트 듣기

어떻게 이벤트를 modelPage에 바인딩합니까?

감사합니다, ItemTapped 이후

답변

1

마이크는 이벤트가 아닌 Command (전혀 또는 BindableProperty) 당신 PageModel에서 직접 사용할 수 있습니다.

그들은 이것을 위해 Behaviors과 같은 것을 발명했습니다. 비헤이비어를 사용하면 EventCommand으로 설정할 수 있습니다.

Corcav's one처럼 이렇게 타사 플러그인이 있지만

, 그것은 또한 Xamarin.Forms now에 내장되어 있습니다.

Corcav에서 설명한대로 다른 구현도 비슷해야합니다. 또한 XAML을 사용하고 있다고 가정합니다. 모든

첫째, NuGet를 설치하고 같은 추가 의미 페이지로 올바른 네임 스페이스를 포함하는 것을 잊지 마세요 : 그래서처럼 Behaviors를 선언하여 ListView에서 이제 xmlns:behaviors="clr-namespace:Corcav.Behaviors;assembly=Corcav.Behaviors"

을 :

<!-- ... more XAML here ... --> 
<ListView IsPullToRefreshEnabled="true" RefreshCommand="{Binding RefreshDataCommand}" IsRefreshing="{Binding IsBusy}" IsVisible="{Binding HasItems}" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" CachingStrategy="RecycleElement"> 
     <behaviors:Interaction.Behaviors> 
      <behaviors:BehaviorCollection> 
      <behaviors:EventToCommand EventName="ItemSelected" Command="{Binding ItemSelectedCommand}" /> 
      </behaviors:BehaviorCollection> 
     </behaviors:Interaction.Behaviors> 

<!-- ... more XAML here ... --> 

컬렉션은 컬렉션이므로 원하는 경우 다른 시나리오에서도 추가 할 수 있습니다. 사실 이며 실제로 사용자는 SelectedItem입니다. 선택하신 항목이 선택 상태를 유지하기 때문에 원하는 항목 일 수 있습니다. 따라서 SelectedItem 속성은 null (따라서 TwoWay)으로 다시 설정하는 것 이상을 수행하지 않습니다. 하지만 실제로 선택한 항목을 가져올 수도 있습니다. 에서 이제

당신의 PageModel 명령을 선언하고이 같은 뭔가를 할당 :

private void ItemSelected() 
{ 
    // Open the article page. 
    if (_selectedItem != null) 
    { 
     CoreMethods.PushPageModel<GroupArticlePageModel>(_selectedItem, false, true); 
    } 
} 

_selectedItem

이 탭 항목이 할당 된 프로퍼티 인. 물론 더 잘 할 수 있으며 탭핑 된 항목 참조를 넣은 CommandParameter으로 동작을 제공 할 수 있습니다.

+0

도움을 주셔서 감사합니다. –