Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // TreeViewItem class
- public event PropertyChangedEventHandler PropertyChanged = (x, y) => { };
- [SerializeField]
- [UnityEngine.Serialization.FormerlySerializedAs("ComboboxItems")] // without it data will be lost on renaming
- List<string> comboboxItems;
- public List<string> ComboboxItems
- {
- get
- {
- return comboboxItems
- }
- set
- {
- comboboxItems = value;
- Changed("ComboboxItems");
- }
- }
- protected void Changed(string propertyName)
- {
- PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
- }
- TreeViewItem item;
- // TreeViewItemComponent
- public TreeViewItem Item
- {
- get
- {
- return item;
- }
- set
- {
- if (item != null)
- {
- item.PropertyChanged -= UpdateView;
- }
- item = value;
- if (item != null)
- {
- item.PropertyChanged += UpdateView;
- }
- UpdateView();
- }
- }
- public override void SetData(TreeNode<TreeViewItem> node, int depth)
- {
- Node = node;
- base.SetData(Node, depth);
- Item = (Node == null) ? null : Node.Item;
- }
- protected void UpdateView(object sender = null, PropertyChangedEventArgs ev = null)
- {
- // set combobox items, selected index and other data
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement