現在、VirtualDirectoryのGetEnumeratorはViewのものを返している。
利便性として考えると今はこの仕様でいきたい。
しかし、生のNodesのGetEnumeratorを返していないのでユーザーは注意が必要。
public IEnumerator<VirtualNode> GetEnumerator() => NodesView.GetEnumerator();
利用法としては、
foreach(var node in dir1)
{
}
みたいに列挙する時、nodeは表示条件(フィルタリング、グルーピング、ソート)に従ったものが列挙されてくる。
場合によって、フィルタリングの指定もある為、生のNodesより少ない数が列挙される。
表示条件はVirtualStorageState.SetNodeListConditionsメソッドで設定する。
で、生のNodesを列挙したい場合は、
foreach(var node in dir1.Nodes)
{
}
のように書かなければならない。
この仕様で本当に良いか再検討する。
この仕様で良ければドキュメントでしっかり書いておきたい。
現在、VirtualDirectoryのGetEnumeratorはViewのものを返している。
利便性として考えると今はこの仕様でいきたい。
しかし、生のNodesのGetEnumeratorを返していないのでユーザーは注意が必要。
利用法としては、
みたいに列挙する時、nodeは表示条件(フィルタリング、グルーピング、ソート)に従ったものが列挙されてくる。
場合によって、フィルタリングの指定もある為、生のNodesより少ない数が列挙される。
表示条件はVirtualStorageState.SetNodeListConditionsメソッドで設定する。
で、生のNodesを列挙したい場合は、
のように書かなければならない。
この仕様で本当に良いか再検討する。
この仕様で良ければドキュメントでしっかり書いておきたい。