2012-07-16 76 views
0

有沒有提供基本選擇機制的任何類?例如:提供「選擇」的類

想象一下,我有用WAVE編寫的WAVE文件和簡單的WAV編輯器。現在我可以以波形的形式顯示這個波形文件。在主菜單中,我可以點擊編輯 - >全選,這將選擇我的所有樣本。

MySelector ms = new MySelector (0, numOfSamples-1); 
ms.SelectAll; 

Ofcourse Ishould可以選擇範圍塊:

ms.Select (from, to); 

甚至反轉:

ms.InvertSelection(); 

多選擇:

ms.AppendSelection (from ,to); 

約所選樣品獲取信息:

for (int i=0; i< ms.Size; i++) 
if (ms.SelectedAt (i)) DoSomeLogic(); 

那麼,那個班已經寫了嗎,還是應該我明天去做呢?

Thx。

+0

從你的用戶界面中分離你的邏輯。沒有「Select」類或「ISelected」接口,因爲可以選擇的UI元素將處理他們自己的選擇。然後你可以檢索ListBox。SelectedItems()'並且在這個列表上工作。 – CodeCaster 2012-07-16 15:09:43

回答

1

我已經無法找到任何「官方」(內置框架)班隱約匹配你的描述,但我發現this article這將有助於你對你的方式 - 我看不到的相當於你的InvertSelection()方法,但除此之外它看起來很有前途。

編輯:在進一步的搜索,我發現喬恩斯基特對在他的書C#深入創建通用範圍類的一章 - 看到他的網站上here它的提取物。

1

我不知道框架中的任何事情,只有這一點。這似乎是一個高度依賴於你想如何跟蹤選擇(Selected屬性,索引範圍)的東西。

1

你已經寫了多少本課?正因爲如此,我看到你描述

  1. 一組兩個數字(多頭,也許?)來定義一個時間範圍或樣本的選擇。
  2. 能夠選擇所有時間/樣本作爲方便。
  3. 時間範圍的集合。
  4. 「擊中測試」給定時間/樣本選擇的能力。

如果您的wave數據有API/POCO,那麼可以在其上實現通用或訪問者模式以獲得所需的功能。我不確定我知道.net框架中的通用「樣本範圍」項目。作爲一個例子,你可以看一下代碼示例Building a Generic Range class,看看你是否可以使用它。我不完全相信我同意他的一些運營商超載,但它可能是你開始的地方。