Xamarin.forms Xamarin开关切换事件:获取列表的绑定项
截至撰写时Mac上的最新Xamarin:Xamarin.forms Xamarin开关切换事件:获取列表的绑定项,xamarin.forms,binding,Xamarin.forms,Binding,截至撰写时Mac上的最新Xamarin: <ContentPage.Content> <StackLayout> <ListView x:Name="ItemsListView" ItemsSource="{Binding Items}" VerticalOptions="FillAndExpand" HasUnevenRows="true" RefreshCommand="{Binding LoadItemsCommand}" IsPull
<ContentPage.Content>
<StackLayout>
<ListView x:Name="ItemsListView" ItemsSource="{Binding Items}" VerticalOptions="FillAndExpand" HasUnevenRows="true" RefreshCommand="{Binding LoadItemsCommand}" IsPullToRefreshEnabled="true" IsRefreshing="{Binding IsBusy, Mode=OneWay}" CachingStrategy="RecycleElement" ItemSelected="OnItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<StackLayout Padding="10">
<Label Text="{Binding Summary}" LineBreakMode="NoWrap" Style="{DynamicResource ListItemTextStyle}" FontSize="Medium" />
<Label Text="{Binding Reporter}" LineBreakMode="NoWrap" Style="{DynamicResource ListItemDetailTextStyle}" FontSize="Micro" />
</StackLayout>
<StackLayout Orientation="Horizontal" HorizontalOptions="EndAndExpand">
<Label Text="{Binding Start}" FontSize="Medium" VerticalOptions="Center"/>
<Switch IsToggled="{Binding Result}" Toggled="Handle_Toggled" VerticalOptions="Center"/>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
通常,您需要做的是响应item类中属性“Result”的更改,并将您的逻辑排除在Page类之外。 如果需要在事件中进行处理,可以通过以下方式进行处理:
void Handle_Toggled(object sender, Xamarin.Forms.ToggledEventArgs e)
{
var switch = sender as Switch;
var item = switch.Parent.BindingContext as ItemViewModel;
}
用项目的类型替换ItemViewModel。通常,您需要做的是对项目类中属性“Result”的更改做出反应,并将您的逻辑排除在Page类之外。 如果需要在事件中进行处理,可以通过以下方式进行处理:
void Handle_Toggled(object sender, Xamarin.Forms.ToggledEventArgs e)
{
var switch = sender as Switch;
var item = switch.Parent.BindingContext as ItemViewModel;
}
按项目类型替换ItemViewModel。谢谢-了解PropertyChangedEvent;这是有道理的。在这种情况下,当用户切换开关时,如果项目的某些方面处于特定状态,我需要实际打开项目详细信息页面。在我的例子中-项目的“列表”由ViewModel提供,因此switch.BindingContext是实际的数据项记录。@Hicham如何在MVVM模型中获得类似的结果?@niketan这取决于您的解决方案,但通常使用两种方法:1。交换机上的双向数据绑定。2.将切换事件传递到ItemViewModelThank-了解PropertyChangedEvent;这是有道理的。在这种情况下,当用户切换开关时,如果项目的某些方面处于特定状态,我需要实际打开项目详细信息页面。在我的例子中-项目的“列表”由ViewModel提供,因此switch.BindingContext是实际的数据项记录。@Hicham如何在MVVM模型中获得类似的结果?@niketan这取决于您的解决方案,但通常使用两种方法:1。交换机上的双向数据绑定。2.将切换事件传递给ItemViewModel