当前位置: 首页 > 知识库问答 >
问题:

级联拾取器inXamarin形成MVVM

东方建修
2023-03-14

我有一个问题,我怎么做一个级联选择器来链接所选城市中的所有州?

这段代码检索所有的城市和州,但有一点我想不通,就是如何取所选的城市值,并将其与州同步。

这是ViewModel

public class MyViewModel : BaseViewModel
    {  
public async void GetCities()
        {
            using (var client = new HttpClient())
            {
                var uri = Constants.BaseApiAddress + "api/GetCities";
                var result = await client.GetStringAsync(uri);
                var CitiesList= JsonConvert.DeserializeObject<List<CityModel>>(result);
                Cities = new ObservableCollection<CityModel>(CitiesList);
            }
        }

        public async void GetStates()
        {
            using (var client = new HttpClient())
            {
                var uri = Constants.BaseApiAddress + "api/GetStates";
                var result = await client.GetStringAsync(uri);
                var StatesList= JsonConvert.DeserializeObject<List<StateModel>>(result);
                States = new ObservableCollection<StateModel>(StatesList);
            }
        }

StateModel _selectedState;
        public StateModel SelectedState
        {
            get
            {
                return _selectedState;
            }
            set
            {
                if (SelectedState!= value)
                {
                    _selectedState = value;
                    OnPropertyChanged();
                }
            }
        }
CityModel _selectedCity;
        public CityModel SelectedCity
        {
            get
            {
                return _selectedCity;
            }
            set
            {
                if (SelectedCity != value)
                {
                    _selectedCity = value;

                    OnPropertyChanged();
                }
            }
        }
 }

这是XAML

<Picker x:Name="CityPicker" Title="Select City"
                    ItemsSource="{Binding Cities}" 
                    ItemDisplayBinding="{Binding City}" 
                    SelectedItem="{Binding SelectedCity}" />

            <Picker x:Name="StatePicker" Title="Select State"
                    ItemsSource="{Binding States}" 
                    ItemDisplayBinding="{Binding State}" 
                    SelectedItem="{Binding SelectedState}" />

共有1个答案

仲孙才捷
2023-03-14

只需更新SelectedState设置器中的Cities属性:

        public StateModel SelectedState
        {
            get
            {
                return _selectedState;
            }
            set
            {
                if (SelectedState!= value)
                {
                    _selectedState = value;
                    OnPropertyChanged();
                   if (value != null)
                        //Cities =  RetrieveCitiesByState((CityModel) value); //update Cities according to the new selected State (value)
                }
            }
        }
 类似资料:
  • 问题内容: 如果我的数据库中有一个简单的User表,而有一个以User.id作为外键的简单Item表,则: 如果将用户从表中删除,我需要先删除所有相关项,以免破坏参照完整性约束。这很容易做到 但是,如果我也有引用用户的集合,还有一个将项目收集到集合中的表,那么我很麻烦,即以下附加代码不起作用。 该错误表明“可能导致循环或多个级联路径”。我认为推荐的解决方法是 重新设计表格,但是我看不到如何做。或者

  • 问题内容: 有人知道我可以抢在应用程序中使用的快速颜色选择器小部件吗? 我见过几种不同的应用程序,它们都有一个带有颜色的转盘,您点击中间的按钮进行选择,但是我不确定在哪里可以找到它。 任何颜色选择器都可以。 问题答案: 您正在谈论的车轮颜色选择器在API演示中。 https://android.googlesource.com/platform/development/+/master/sampl

  • 我有一个客户谁的FTP文件通过我们的服务器。我定义了一条路由,从这个目录中选择某些文件,并将它们移动到另一个要处理的目录中。问题是,它一看到它就拿它,而不是等到ftp完成。结果是to URI中描述的路径中的一个0字节文件。我尝试了每一个readLock选项(masterFile、rename、changed、fileLock),但都不起作用。我正在使用spring DSL定义我的骆驼路由。这里有一

  • 我有一个Spring应用程序在独立的JBoss EAP 6.2中运行(带有嵌入式HornetQ提供程序)。 消息被成功地放在队列中(我可以在jboss eap-6.2\独立\data\MessagingJournal\hornetq-data-1.hq中看到它们,因为队列是持久的),但不会被侦听器拾取(侦听器中的断点不会被命中)。我怀疑配置中缺少或错误的东西,但看不出是什么。JBoss启动时没有任

  • Cascader 级联选择器 当一个数据集合有清晰的层级结构时,可通过级联选择器逐级查看并选择。 基础用法 有两种触发子菜单的方式 只需为 Cascader 的options属性指定选项数组即可渲染出一个级联选择器。通过props.expandTrigger可以定义展开子级菜单的触发方式。 <div class="block"> <span class="demonstration">默认 c

  • 当一个数据集合有清晰的层级结构时,可通过级联选择器逐级查看并选择。 基础用法 有两种触发子菜单的方式 只需为 Cascader 的options属性指定选项数组即可渲染出一个级联选择器。通过props.expandTrigger可以定义展开子级菜单的触发方式。 <div class="block"> <span class="demonstration">默认 click 触发子菜单</spa