c# - 我们如何识别 Xamarin 中选择器的选定项的视图?
问题描述
我们如何识别Xamarin中选择器的选定项的视图?
我们有一个视图,即SearchPage.xaml。这个视图的一个 ViewModel 即SearchPageVm.cs。我们有多个选择器,并且搜索页面中提供了控件。
我们有五个选项卡,即 Tab1、Tab2、Tab3、Tab4、Tab5。每个选项卡都包含搜索页面视图。请注意,我们正在创建 Search Page 视图模型的单个实例,并且同一个实例绑定到不同选项卡中使用的 SearchPageView 的每个新实例。
如果选择了 Tab1 并且用户选择了 Picker1 的一项。绑定到 Picker1 的 SelectItem 属性在 SearchPageVm 中可用。我们接到了 5 个电话,但我们无法确定哪个 View 正在调用它。
我们想执行一个动作,但只执行一次。
示例代码:
搜索页面.xaml
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:System="clr-namespace:System;assembly=netstandard"
xmlns:SearchVm="clr-namespace:MyApplication.ViewModel;assembly=MyApplication"
x:Class="MyApplication.Views.SearchPage"
BindingContext="{x:Static SearchVm:CommonDataCache.SearchPageVmInstance}">
<ScrollView Orientation="Both" IsClippedToBounds="True" Padding="0,0,10,0">
<StackLayout x:Name="ControlStackLeft">
<customControls:SearchPageGrid
VisibleOnPages="Tab1,Tab2,Tab3,Tab4,Tab5">
<Label Grid.Row="0" Grid.Column="0" Text="Item1" />
<Picker Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2"
HorizontalOptions="FillAndExpand"
ItemsSource="{Binding Item1List}"
ItemDisplayBinding="{Binding Name}"
SelectedItem="{Binding SelectItem1,Mode=TwoWay}" />
</customControls:SearchPageGrid>
</StackLayout>
</ScrollView>
SearchPageVm.cs:
private string _selectedItem1;
public string SelectedItem1
{
get => _selectedItem1;
set
{
_selectedItem1 = value;
OnPropertyChanged(nameof(SelectedItem1));
if (SelectedItem1 != null)
//Perform some Action
}
}
Tab1.xaml:
<StackLayout Orientation="Vertical" Margin="0,0,0,0" Grid.Row="0">
<ScrollView HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Orientation="Horizontal"
IsClippedToBounds="True">
<views:SearchPage x:Name="SearchView" />
</ScrollView>
</StackLayout>
解决方案
推荐阅读
- python - mkdir:路径应该是字符串而不是生成器
- python - Pandas 查询功能无法正确评估/子集的问题
- jmeter - 即使响应中存在动态值,也会传递场景
- php - 根据自定义字段和数量阈值更改 WooCommerce 购物车商品价格
- isabelle - 为什么奇偶情况不同?
- javascript - javascript中的if语句增加变量的值
- python - 如何删除不必要的轮廓?
- heroku - 部署 Heroku 应用程序的问题 - RQ Worker:“HSET”命令的参数数量错误
- python - 我有多个变量有时具有相同的值,但并非总是如此,如何指定函数的哪一部分使用 python
- python-3.x - 为什么即使满足条件,这个函数也不会结束它的循环?