コード例 #1
0
    void OnDataChange()
    {
        //每次数据更新时删除已存在所有列表
        var child = Content.GetComponentsInChildren <UIToDoItem>();

        foreach (var item in child)
        {
            Destroy(item.gameObject);
        }

        //过滤掉所有complete为true的事项,并显示剩余未完成事项
        mToDoListData.ToDoItems.Where(todoItem => !todoItem.Completed.Value)
        .ToList()
        .ForEach(todoItem =>
        {
            todoItem.Completed.Subscribe(completed =>
            {
                if (completed)
                {
                    OnDataChange();
                }
            });

            var go = Instantiate(mToDoItemPrototype);
            go.transform.parent     = Content;
            go.transform.localScale = new Vector3(1, 1, 1);
            go.gameObject.SetActive(true);

            go.SetModel(todoItem);

            go.mSelfButton.OnClickAsObservable()
            .Subscribe(_ =>
            {
                mUIInputCtrl.EditMode(todoItem);
            });
        });
        mToDoListData.Save();
    }