Xamarin.Forms jamesmontemagno设置插件

时间:2018-09-07 08:01:15

标签: c# xamarin.forms

我正在构建xamarin表单应用程序,正在使用jamesmontemagno设置插件,并添加了一个属性,该属性列出了一个类。但问题是,每次使用“添加”或“插入”方法时,我都无法添加或插入到列表中,而不是跳转到get集合中,我也不明白为什么。

这是我的代码,感谢您的提前帮助:

///将项目添加到列表

 private void order(Sales_Order_Items sale)
{
    orderlist.Add(sale);
    Settings.Usercartlist.Add(sale);
}

我只能使用此代码进行设置

Settings.Usercarlist=orderlist;

设置文件中的属性

public static List<Sales_Order_Items> Usercartlist
{
    set
    {
        string listValue = JsonConvert.SerializeObject(value);
        AppSettings.AddOrUpdateValue(myIntListKey, listValue);          
    }
    get
    {
        string value = AppSettings.GetValueOrDefault(myIntListKey, string.Empty);
        List<Sales_Order_Items> myList;
        if (string.IsNullOrEmpty(value))
            myList = new List<Sales_Order_Items>();
        else
            myList = JsonConvert.DeserializeObject<List<Sales_Order_Items>>(value);
        return myList;
    }       
}

2 个答案:

答案 0 :(得分:1)

添加项目时,实际对象引用不会更改。只有值改变。 getter或setter不会拾取。

在每个项目之后进行更新的唯一方法是在每个操作之后添加您已经拥有的行:Settings.Usercarlist=orderlist;

答案 1 :(得分:0)

我正在使用以下方式尝试 例如。

 private static UserDetails _currentUser = null;
 public static UserDetails CurrentUser
 {
    get
    {
       if (_currentUser == null)
       {
         string data = AppSettings.GetValueOrDefault(nameof(CurrentUser), string.Empty);
         if (data != null)
            _currentUser = JsonConvert.DeserializeObject<LoginResponse>(data);
       }
       return _currentUser;
    }

    set
    {
        string data = JsonConvert.SerializeObject(value);
        AppSettings.AddOrUpdateValue(nameof(CurrentUser), data);
        _currentUser = value;
    }
}