2021년 4월 14일 수요일

Treeview 분석

 TreeviewDemo


public TreeView TreeView선언하여 사용

사용 

TreeView.ItemDataBinding += OnItemDataBinding;
TreeView.SelectionChanged += OnSelectionChanged;
TreeView.ItemsRemoved += OnItemsRemoved;
TreeView.ItemExpanding += OnItemExpanding;
TreeView.ItemBeginDrag += OnItemBeginDrag;
            
TreeView.ItemDrop += OnItemDrop;
TreeView.ItemBeginDrop += OnItemBeginDrop;
TreeView.ItemEndDrag += OnItemEndDrag;

//이부분은 커스텀 한 부분
TreeView.ShowUI += OnItemUIClick;///20210415 우클릭 신규 추가 이벤트

//커스텀으로 만든 부분
private void OnItemUIClick(object senderShowUIArgs e)
        {
            Debug.Log("OnItemUIClick");

            rightClick_UI.SetActive(true);
        }




TreeView에 붙어있는 이벤트를 만들거나 붙이거나 해서 사용


Treeview의 구조는 
namespace Battlehub.UIControls 상속받음

Treeview 클래스

public class TreeView : ItemsControl<TreeViewItemDataBindingArgs>

ItemsControl의 인터페이스를 상속


간단하게 

EventHandler를 추가하기 위해

EventArgs를 상속받는 클래스를 하나 선언(ShowUIArgs)

  public class ShowUIArgs : EventArgs
    {
        private object[] v;
        private PointerEventData eventData;

        public ShowUIArgs(object[] v, PointerEventData eventData)
        {
            this.v = v;
            this.eventData = eventData;
        }
    }


EventHandler 하나 선언
public event EventHandler<ShowUIArgsShowUI;///20210415 우클릭 신규 추가 이벤트



EventHandler를 콜하는 함수 설정

private void OnItemShowUI(ItemContainer senderPointerEventData eventData)
        {
            if (ShowUI != null)
            {
                Debug.Log("Show UI!!!");
                ShowUI(thisnew ShowUIArgs(new[] { sender.Item }, eventData));
            }
        }


이벤트에 추가하기

ItemContainer.PointerDown += OnItemShowUI///추가 !!



댓글 없음:

댓글 쓰기

git rejected error(feat. cherry-pick)

 문제 아무 생각 없이 pull을 받지않고 로컬에서 작업! 커밋, 푸시 진행을 해버렷다. push에선 remote와 다르니 당연히 pull을 진행해라고 하지만 로컬에서 작업한 내용을 백업하지 않고 진행하기에는 부담스럽다(로컬작업 유실 가능성) 해결하려...