2011-08-14 5 views
0

グリッドにチェックボックスで削除する機能を追加するオブジェクトがあります。問題は、オブジェクトが作成時に共通のいくつかのプロパティによってグループ化されていることです。たとえば、私は、この例では、オブジェクトオブジェクトのプロパティに基づいてグループ識別子を作成する

public class GroupedObject 
{ 
    Name { get; set; } 
    Level { get; set; } 
    Assignment { get; set; } 
    AssignmentDate {get; set; } 
} 

を持っている私は、GUIからGroupedObjectsを保存するとき、私は別々に設定Nameプロパティを持つ複数のオブジェクトを持っていますが、それらを同じレベル、割り当て、およびAssignmentDateを割り当てることができます。したがって、これらの3つのプロパティはバッチを一意にします。私は、これらの3つの情報をグループ化する一意の識別子を作成する最良の方法が何か不思議でした。私は私がグループ内の1つの項目を選択すると、「アイテムのバッチ」となるように、バックグラウンドでレンダリングされた何かを持っていることの方法を持って

public class GroupedObject 
{ 
    .... 
    public int BatchId 
    { 
     var batchString = string.format("{0}{1}{2}", Level, Assignment, AssignmentDate); 
     return batchString.GetHashCode(); 
    } 
} 

の線に沿って何かのグリッド上でこの方法を考えていました選択された。

このようなものを処理する代わりに/標準的な方法がありますか、それは実装者次第です。

答えて

1

私が知る限り、標準あなたがしたいことをやっているように、とても多くのことを実現する方法です。

私が実装している唯一の問題は、文字列の作成です。コンポジットIDの一部であるすべてのメンバーのハッシュコードを取得し、それらから別のハッシュコードを生成すると、おそらく良くなります。アイデアについては、this postを参照してください。

注:パフォーマンスはあなたのための問題(グリッドにバインドされた大量のデータ)である場合

、あなたの状況に最も適したものを見るために、異なるアルゴリズムをテストする必要があります。

+0

ありがとう、それはより良い解決策のようです – indigo0086

関連する問題