ちょいとした内製アプリを頼まれてて、C#でこりこり書いてるですよ。
扱うデータ自体がTree構造なのでファイルとしての表現は無難にXML、
見てくれはやっぱり無難なTreeViewと。
TreeViewは親子関係を持ったTreeNodeのコンテナとなってます。
XMLのelementときっちり対応がとれますです。
んで、XMLelementの属性の類をclassなりstructなりにまとめ、
TreeNode.Tag 使ってぶら下げ、elementの親子関係はTreeNodeに任せます。
...なんてことやってるとどうにも居心地が悪いんですわ。
つまりね、TreeViewあるいはTreeNodeがViewであると同時に
データとその繋がりを表現したModelそのものになっちまうですよ。
TreeView/TreeNodeそれぞれに対応したModelが用意されていて、
Modelの操作と連動してTreeViewの見え方が変化してくれるなら、
Model/Viewアーキテクチャに則った設計なり実装ができるだろうし、
ModelとXML間のマーシャル・ルールさえ用意してあげれば
XMLをModelに食わせただけでViewができあがるんちゃうかなー
とか妄想するです。
なんてんだろ、きょうびのRADというかIDEというか、
かなりView側に傾いてるように感じます。
本来Model側にあるはずの多くのものがFormの
メンバになってしまうよな。
僕は畑が違うんでよくわかんないんだけど、データベース絡み
ってそれがかなり顕著じゃないのかしら。
データソースだのデータセットだのはModelに置かれるはずのものですよねぇ。