どこかのだれかへ

職業ゲームプログラマ。気になったニュースのピックアップや開発日記などを書いています。

可変リストの選択中項目はIDで持っておくと良い

今日仕事で得た教訓。リストUIがあって、表示中にそのリスト項目が増減する場合があった。僕は最初、選択している項目をインデックスで変数として持っていたが、増減したときこのインデックスは意味を成さなくなってしまう。

 

これに対応するには更新前に現在選択している項目から判別可能なIDを退避しておき、更新後、新しいリストからIDを探してそのインデックスを取得することになるのだが、それなら最初からIDで持っておけばいいじゃないか、となった。最終的に使うのは結局こういったIDな分けだし。

 

別の方法として、項目用のデータ1つ1つに選択されているかどうかのフラグを持たせるというのも考えたが、こちらはもともとインデックスで作っていたのでそこから変えるのは面倒だったので辞めることにした。複数選択出来る、とかならそれでもいいかもだけど。

 

WPFとかならこういうところはあんまり気にしなくて良いかもだけど、ゲームとかだとこういったUIの仕組みも一から作るから大変だと感じている。もっとうまい方法があるとは思うのだが、それはおいおい学んでいくこととする。