使用xamarin平台。我基本上需要将observablecollection中某个项目的属性绑定到label.text属性。
到目前为止,我有这个
模型
public class TelemetModel : BaseItem , INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private int dayCount;
public int Daycount
{
get { return dayCount; }
set
{
if (dayCount != value)
{
dayCount = value;
OnPropertyChanged();
}
}
}
public double Tdyattnd { get; set; }
public double Tdybnk { get; set; }
public double Tomattnd { get; set; }
public double Tombnk { get; set; }
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
ViewModel
public ObservableCollection<TelemetModel> OtelemetInstance { get; set; }
OtelemetInstance = new ObservableCollection<TelemetModel>();
//In some method
var otelemet = new TelemetModel
{
Daycount = classcount,
Tdyattnd = Math.Round(tdyatnd, 2),
Tdybnk = Math.Round(tdybnk, 2),
Tomattnd = Math.Round(tomatnd, 2),
Tombnk = Math.Round(tombnk, 2)
};
OtelemetInstance.Clear();
OtelemetInstance.Add(otelemet);
查看
lbl_classinfo.BindingContext=ViewModel.ClassVMInstance.DatesVMInstance.OtelemetInstance[0].Daycount;
lbl_classinfo.SetBinding(Label.TextProperty, ".",converter:new IClassNeededConverter());
现在,即使我在模型属性中使用了inotifypropertychanged接口,我的视图也没有更新。
花3天的一半时间寻找我的特定需求,即。在ObservableCollection的item属性上实现INotifyPropertyChanged,在任何地方都找不到代码片段。我对MVVM陌生,我所做的可能是错误的,在此先感谢您的帮助。让我知道您是否需要任何详细信息。
编辑:
IV制作了GitHub存储库Here