2011-02-03 11 views
0

私はデータグリッドにタスク名と2人目で記載されたいくつかのタスクを持っています。注文の優先順位に基づいてすべてのタスクを表示しています。ユーザーがDataGridの途中でタスクを追加する必要がある場合は、選択したタスクの優先番号を読み取り、増分して新しいタスクの優先順位番号として設定します。次に、新しいタスクの後にリストされたすべてのタスクの優先順位を増やします。注文の優先順位を維持する方法

データベースからすべてのタスクを読み込み、ObservableCollectionに保持します。タスクを表示する前に、優先順位に基づいてソートします。

 public class Task 
      { 
       public int TaskId { get; set; } 
       public string TaskName { get; set; } 
       public DateTime DueDate { get; set; } 
       public int OrderPrecedence { get; set; } 
      } 

ここで、新しいタスクがコレクションに追加された場合、他のすべてのタスクの優先度を更新する必要があります。他のタスクの優先順位番号を更新せずに注文の優先順位を処理する良い方法はありますか?

+0

あなたの質問に「いいえ」という言葉が使われているとは分かりませんが、そうでなければリンクリストについて聞いているようです。 –

+0

その優先順位これに基づく数値グリッドに表示されているコレクションをソートしています – Hukam

+1

あなたは維持する必要があるデータ構造をどうしますか? 1からnまで挿入して繰り返しますか?または、それを注文してタスクにアクセスする必要がありますか?それとも、「最高」の仕事を選ぶだけでしょうか? –

答えて

1

注文を維持する代わりに、タスク優先度を設定できますか? Windowsのタスク優先度に似ています。すなわち、すべての「高」優先タスクは、「通常」優先タスクの前に実行される。また、2つのタスクの優先度が同じであれば、DueDateの早いものが最初に実行されます。

+0

これは正しい答えに近いと思います。論理的に他のすべての値から派生した値を保存するという意味はありません。 –

関連する問題