hello hello,
Let’s say I have a Foo
class that has two properties that are Channel<Bar>
and Channel<Baz>
.
I have created two IObjectEditor
for Bar
and Baz
, and a third one for Foo
that has just two ObjectEditor
nodes in TabItem
regions, for both Bar
and Baz
.
The two properties are Channels because I need to deserialize them from XML on startup, and react to changes (serialize them to disk) when edited. For that, I have the Deserialize operation fed to the Initial Value
pin of the Channel
node, and a ForEach (Channel)
after that serializes and writes to disk, as follows :
So this is all working fine if I’m calling Bar
on Foo
, that gives me a Channel that I can feed to the ObjectEditor
and update Bar
. Cool.
What I don’t understand is how I’m supposed to edit Foo
directly. I can see my custom editor if I create a Channel out of it and feed it to the ObjectEditor
, but the values I tweak don’t get propagated back to Bar
and Baz
.
Generally I feel there’s something I still don’t get with Channels
, for instance whether it’s good practice to have properties as Channels
directly, or if I should only “make channels out of them” with Select (ByPath)
? Or why does the ForeEach (Channel)
also accepts non-channels? Does it make channels out of them on the fly?
Thanks in advance :3
seb
EDIT
went for a different approach using a GlobalChannel, which makes sense here because this Bar
thing shall be read in multiple places. I still don’t get though how I’m supposed to feed an instance of Foo
to an ObjectEditor.