Vision best practices for using UDTs in a popup

Hello

I have a Vision project with a UDT for each type of device. Each device has a popup for it's UDT. The popup has a custom property (DevicePath) to pass a string path to the UDT instance.

First Question:
Should I create another custom property (Device) in the root container that is of the UDT type for that popup, and then do a single indirect binding on that to the instance of the UDT using the path that was passed in. Or should I just do indirect bindings througout the popup using the DevicePath property.
If I add the Device property, then I would do property bindings throughout the popup, otherwise, I would do indirect bindings througout the popup.

Follow up question:
If I add the Device property, should I treat it as read/write and write to the tags through the properties, or treat it as readonly and still do tag writes with system.tag.writeAsync() in button presses using the DevicePath property.

Thanks

No. Do not use UDT properties anywhere in your UI. Use the tag path to drive indirect bindings for the actual members of the UDT that you need. (Including bidirectionally, as needed.)

UDT properties cause excess traffic to the Vision client, as the whole UDT will be transferred for every change within it. Binding directly to members of the UDT will generate tiny updates to individual members, batched by the Vision poll rate.

Binding to individual members also frees your UI from the actual UDT, as a string path pointing at a folder with atomic tags of the same names as the UDT members will function in your UI automatically. As will non-child UDTs that happen to also share the member names.

Yes, the Inductive University videos encourage UDT property usage. It's a trap.

That's what I was worried about... thanks for sharing!