首页 > 解决方案 > Xamarin 表单中的选取器 SelectedItem 绑定问题

问题描述

我有一个绑定到 ObservableCollection 对象的 Picker。这些项目是从 Web 服务(json 数据)填充的。

选择器正确显示数据,但 SelectedItem 不起作用。

这是我的 xaml 代码:

  <Picker
        ItemsSource="{Binding RatesTax}"
        ItemDisplayBinding="{Binding Code}"
        SelectedItem="{Binding SourceRate, Mode=TwoWay}">

    </Picker>

RatesTax 是 RatesView 类的对象

 public class RatesView 
{
    public string Code
    {
        get; set;
    }

    public double TaxRate
    {
        get; set;
    }      
}

这是属性

 public ObservableCollection<RatesView> RatesTax { get; set; }

这是 sourceRate 属性

private RatesView sourceRate;

和 SourceRate 属性

   public RatesView SourceRate
    {
        set
        {
            if (sourceRate != value)
            {
                sourceRate = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SourceRate"));
            }
        }
        get
        {
            return sourceRate;
        }
    }

我在 SourceRate 中放置了一个断点,以查看当我选择选择器的一些数据时它是否进入,但它没有进入 SourceRate 过程。我认为 SelectedItem="{Binding SourceRate} 没有按预期工作。

谢谢你的时间!

标签: c#data-bindingxamarin.formsbindingpicker

解决方案


这可能是 Xamarin 方面的错误。如果您将 SourceRate 设为字符串,您将在选择时获得您选择的代码。由于某种原因,它不会路由绑定的对象,而只会显示值。这似乎不是一种期望/预期的行为。


推荐阅读