내 프로젝트에는 목록보기가 있습니다. 이제는 SelectedItem 변경 사항을 듣는 것이 쉽습니다. 모든 자습서에는 해당 항목이 있지만 ItemTapped 이벤트를 사용할 때 아무 것도 찾을 수 없습니다.FreshMvvm의 ItemTapped 이벤트 듣기
어떻게 이벤트를 modelPage에 바인딩합니까?
감사합니다, ItemTapped
이후
내 프로젝트에는 목록보기가 있습니다. 이제는 SelectedItem 변경 사항을 듣는 것이 쉽습니다. 모든 자습서에는 해당 항목이 있지만 ItemTapped 이벤트를 사용할 때 아무 것도 찾을 수 없습니다.FreshMvvm의 ItemTapped 이벤트 듣기
어떻게 이벤트를 modelPage에 바인딩합니까?
감사합니다, ItemTapped
이후
마이크는 이벤트가 아닌 Command
(전혀 또는 BindableProperty
) 당신 PageModel
에서 직접 사용할 수 있습니다.
그들은 이것을 위해 Behaviors
과 같은 것을 발명했습니다. 비헤이비어를 사용하면 Event
을 Command
으로 설정할 수 있습니다.
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
으로 동작을 제공 할 수 있습니다.
도움을 주셔서 감사합니다. –