Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在使用Xamarin的MVVM选择器中显示值_C#_Xamarin_Mvvm_Xamarin.forms_Picker - Fatal编程技术网

C# 如何在使用Xamarin的MVVM选择器中显示值

C# 如何在使用Xamarin的MVVM选择器中显示值,c#,xamarin,mvvm,xamarin.forms,picker,C#,Xamarin,Mvvm,Xamarin.forms,Picker,我想绑定Manufacturer对象的ObservableCollection,并在Xamarin中占据MVVM模式的选择器中显示其Name属性,但我不会在空白选择器中得到结果 此选择器显示在视图过滤器sisquimview.xaml中,如下所示 <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xa

我想绑定Manufacturer对象的ObservableCollection,并在Xamarin中占据MVVM模式的选择器中显示其Name属性,但我不会在空白选择器中得到结果

此选择器显示在视图过滤器sisquimview.xaml中,如下所示

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             BindingContext="{Binding Main, Source={StaticResource Locator}}"
             x:Class="AppValora.Views.Sisquim.FiltrosSisquimView"
             Title="SISQUIM®">   

    <StackLayout
        Orientation="Vertical"
        BindingContext="{Binding Filtros}">

        <Picker Title="Seleccione Fabricante"               
                Margin="15,5,15,5"
                HorizontalOptions="FillAndExpand"
                ItemsSource="{Binding Fabricantes, Mode=TwoWay}"
                ItemDisplayBinding="{Binding Name}"
                SelectedItem="{Binding Name}">         
        </Picker>   

    </StackLayout>
</ContentPage>
然后,在我的FilterViewModel.CS中,我声明了可观察集合,除了在构造函数中初始化它之外,它还将拥有我的选择器控制,并用一个具有两个Id和Name属性的数组填充

 public ObservableCollection<Fabricante> Fabricantes { get; set; }

 public FiltrosViewModel()
  {       
      Fabricantes = new ObservableCollection<Fabricante>();

      LoadFabricantes();
   }

  async void LoadFabricantes()
  {
            IsRunning = true;

            //CONSUMING API...

            var list = response.Fabricantes;
            Fabricantes = new ObservableCollection<Fabricante>(list);

            IsRunning = false;

  }
如何显示值​​在选择器中使用Xamarin占领MVVM

我想绑定Manufacturer对象的ObservableCollection,并在Xamarin中占据MVVM模式的选择器中显示其Name属性,但我不会在空白选择器中得到结果

此选择器显示在视图过滤器sisquimview.xaml中,如下所示

如上所述,包含选择器的StackLayout在MainViewModel中声明如下

public FiltrosViewModel Filtros { get; set; }
然后,在我的FilterViewModel.CS中,我声明了可观察集合,除了在构造函数中初始化它之外,它还将拥有我的选择器控制,并用一个具有两个Id和Name属性的数组填充

 public ObservableCollection<Fabricante> Fabricantes { get; set; }

 public FiltrosViewModel()
  {       
      Fabricantes = new ObservableCollection<Fabricante>();

      LoadFabricantes();
   }

  async void LoadFabricantes()
  {
            IsRunning = true;

            //CONSUMING API...

            var list = response.Fabricantes;
            Fabricantes = new ObservableCollection<Fabricante>(list);

            IsRunning = false;

  }
如你所见,我正确地填充了可观察的集合Fabricantes

但是如何在选择器中显示Name属性?我是MVVM的新手,我想我已经正确地将ViewModel安装到了主视图中,因为我的其他控件都可以工作
一旦用户选择了该名称,我可以拯救该名称的ID吗?有什么帮助吗?

问题是这一行:

Fabricantes = new ObservableCollection<Fabricante>(list);