【问题标题】:How to add custom text to Picker's ItemDisplayBinding in Xamarin Forms如何在 Xamarin Forms 中向 Picker 的 ItemDisplayBinding 添加自定义文本
【发布时间】:2018-09-20 03:20:17
【问题描述】:

我想在我的选取器中添加一个自定义文本。我有一个选择器,从我的 数据库 绑定了 ItemsSourceItemDisplayBinding 如何将自定义文本添加到我的 ItemDisplayBinding我想将 Retailer CodePresStreet 混合并格式化为 “Retailer Code - Street” 我的表格如下供参考

Picker Title="选择零售商代码" x:Name="codePicker" SelectedIndexChanged="codePicker_SelectedIndexChanged" ItemsSource="{Binding RetailerCode}" ItemDisplayBinding="{Binding RetailerCode}" StyleClass="fieldForm" IsEnabled="False"

下面的代码是我如何从数据库中获取数据并将数据添加到我的选择器

var db = DependencyService.Get<ISQLiteDB>();
var conn = db.GetConnection();

var getCode = conn.QueryAsync<RetailerGroupTable>("SELECT * FROM tblRetailerGroup WHERE ContactID=?", item.ContactID);
var resultCount = getCode.Result.Count;
if (resultCount > 0)
{
   var result = getCode.Result;
   codePicker.ItemsSource = result;
   codePicker.IsEnabled = true;
}
else
{
   lstName.IsVisible = false;
   codePicker.IsEnabled = false;
}

我的零售商组表:

 [Table("tblRetailerGroup")]
public class RetailerGroupTable
{
    [PrimaryKey, MaxLength(100)]
    public string RetailerCode { get; set; }
    public int ContactID { get; set; }
    [MaxLength(300)]
    public string PresStreet { get; set; }
    [MaxLength(90)]
    public string PresBarangay { get; set; }
    [MaxLength(90)]
    public string PresDistrict { get; set; }
    [MaxLength(90)]
    public string PresTown { get; set; }
    [MaxLength(90)]
    public string PresProvince { get; set; }
    [MaxLength(90)]
    public string PresCountry { get; set; }
    [MaxLength(30)]
    public string Telephone1 { get; set; }
    [MaxLength(30)]
    public string Telephone2 { get; set; }
    [MaxLength(20)]
    public string Mobile { get; set; }
    [MaxLength(50)]
    public string Email { get; set; }
    [MaxLength(200)]
    public string GPSCoordinates { get; set; }
    [MaxLength(100)]
    public string Coordinator { get; set; }
    public DateTime LastSync { get; set; }
    public DateTime ServerUpdate { get; set; }
    public DateTime MobileUpdate { get; set; }
}

【问题讨论】:

    标签: xamarin xamarin.forms


    【解决方案1】:

    将只读属性添加到您的类 RetailerGroupTable

    public string DisplayText {
      get {
        return $"{RetailerCode} - {PresStreet}";
      }
    }
    

    然后绑定到它

    <Picker ItemDisplayBinding="{Binding DisplayText}" ... />
    

    【讨论】:

    • 在哪里添加公共字符串 DisplayText?
    • 还有其他方法可以做到这一点 - 但 XF 数据绑定目前不支持组合多个属性,这是解决该限制的一种方法
    • 你能帮我解决我的其他问题吗? stackoverflow.com/questions/52418163/…
    猜你喜欢
    • 2019-11-21
    • 2020-04-08
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2015-05-11
    相关资源
    最近更新 更多