通常状况集合的数据绑定都是用ObservableCollection,但今天使用List作数据绑定,发现一个奇怪的问题。函数
描述:插件
List的数据当在插件加载的时候进行数据初始化(经过Add方法),发现界面展现不出来,数据没有绑定上,当把数据初始化放在构造函数中,就可以正常。code
解决:io
缘由是List在插件加载的时候已经将数据进行绑定了,此时在经过Add是通知不到的,只有借助中间变量,一次性赋值:class
//old-这样处理不正确 GroupFieldSrc.Add(new NameValue { IsSelected = true, Value = "branch_no", Name = "业务部门" }); GroupFieldSrc.Add(new NameValue { IsSelected = true, Value = "trader_id", Name = "交易员" }); GroupFieldSrc.Add(new NameValue { IsSelected = true, Value = "operator_no", Name = "下单员" }); GroupFieldSrc.Add(new NameValue { IsSelected = true, Value = "prod_account", Name = "项目" }); GroupFieldSrc.Add(new NameValue { IsSelected = true, Value = "fund_account", Name = "资金帐号" }); GroupFieldSrc.Add(new NameValue { IsSelected = true, Value = "contract_code", Name = "合约代码" }); GroupFieldSrc.Add(new NameValue { IsSelected = true, Value = "entrust_bs", Name = "买卖方向" }); GroupFieldSrc.Add(new NameValue { IsSelected = true, Value = "offset_direction", Name = "开平仓方向" }); //处理方式 List<NameValue>GroupFieldSrc1 = new List<NameValue>(); GroupFieldSrc1.Add(new NameValue { IsSelected = true, Value = "branch_no", Name = "业务部门" }); GroupFieldSrc1.Add(new NameValue { IsSelected = true, Value = "trader_id", Name = "交易员" }); GroupFieldSrc1.Add(new NameValue { IsSelected = true, Value = "operator_no", Name = "下单员" }); GroupFieldSrc1.Add(new NameValue { IsSelected = true, Value = "prod_account", Name = "项目" }); GroupFieldSrc1.Add(new NameValue { IsSelected = true, Value = "fund_account", Name = "资金帐号" }); GroupFieldSrc1.Add(new NameValue { IsSelected = true, Value = "contract_code", Name = "合约代码" }); GroupFieldSrc1.Add(new NameValue { IsSelected = true, Value = "entrust_bs", Name = "买卖方向" }); GroupFieldSrc1.Add(new NameValue { IsSelected = true, Value = "offset_direction", Name = "开平仓方向" }); GroupFieldSrc = GroupFieldSrc1;
这里建议使用ObservableCollection变量