using System.Linq; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class FamilyMoneyDonateWin : Window { [SerializeField] Text countTxt; [SerializeField] ScrollerController scroller; [SerializeField] Button close; FairyModel familyModel { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { close.AddListener(CloseClick); } protected override void OnPreOpen() { scroller.OnRefreshCell += Scroller_OnRefreshCell; familyModel.UpdateFairySalaryEvent += UpdateDonate; Initialize(); } private void Scroller_OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as FamilyMoneyDonateCell; _cell.Display(cell.index); } protected override void OnAfterOpen() { } protected override void OnPreClose() { scroller.OnRefreshCell -= Scroller_OnRefreshCell; familyModel.UpdateFairySalaryEvent -= UpdateDonate; } protected override void OnAfterClose() { } public void Initialize() { countTxt.text = familyModel.donateCount + "/" + familyModel.donateMaxCount; scroller.Refresh(); var keys = familyModel.donateCostInfo.Keys.ToList(); foreach (var key in keys) { scroller.AddCell(ScrollerDataType.Header, key); } scroller.Restart(); } void UpdateDonate() { countTxt.text = familyModel.donateCount + "/" + familyModel.donateMaxCount; scroller.m_Scorller.RefreshActiveCellViews(); } } }