掲示板一覧 - トピック一覧 EA API
アドインからタグ付き値を変更したのですが、うまく行きません |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | トピック |
|---|---|
| mogass | 投稿日時: 2014-7-31 11:08 |
EA Administrator ![]() ![]() 投稿: 171 |
アドインからタグ付き値を変更したのですが、うまく行きませんサポートに頂きましたご質問と回答の要約です。
○ご質問 アドインから直接タグ付き値を変更したのですが,うまく行きません。 ヘルプを見ると,EA.TaggedValue.Value は string 形の RW になっているので,直接変更できるハズだと思うのですが,たとえば, ある要素が "test:hoge" というタグ付き値を持っているとき, element.TaggedValues.GetByName("test").Value; で hoge を取得できますが,これを foo に上書きしたい場合, element.TaggedValues.GetByName("test").Value = "foo"; //アップデート(どこまでやれば良いのか??) element.TaggedValues.GetByName("test").Update(); element.TaggedValues.Refresh(); element.Update(); とやっても書き換えられません.TaggedValue クラスには,値を書き換えるメソッドも提供されていないように見えるのですが, どうやったらタグ付き値を直接書き換えられるのでしょうか? ○回答 この度はご不便をお掛けし申し訳ございません。 GetByName()で取得されるオブジェクトは、参照ではなく、 別のオブジェクトとしてコピーが作成されますので、 ご質問にございましたコードの場合は、それぞれ別の オブジェクトに対して操作を行っている。という状況になります。 > element.TaggedValues.GetByName("test").Value = "foo"; (オブジェクト(1)に対してValueに"foo"を設定) > element.TaggedValues.GetByName("test").Update(); (オブジェクト(2)に対してUpdate()を実行) このため、値の変更と保存は同一のオブジェクトに対して 一連の操作で行う必要がございます。 例えば、以下のようなコードとすることで、正しく値が保存されるかと 思います。 //------------------------------------------------------------ EA.TaggedValue pTaggedValue = (EA.TaggedValue)element.TaggedValues.GetByName("test"); if (pTaggedValue != null) { pTaggedValue.Value = "foo"; pTaggedValue.Update(); } element.TaggedValues.Refresh(); //------------------------------------------------------------ ご確認のほど宜しくお願いいたします。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




