0

タイプ のオブジェクトの階層を表示するツリービューがありますCompany

Companyhas (とりわけ) プロパティを持っていますBool? Checked。各行のチェックボックスでその値を使用しています。子が選択されているかどうかをチェックボックスに (また) 示したいのGetterですが、Checkedプロパティのビルド方法がわかりません。

問題は、値が現在のオブジェクトの値だけでなく、子の結合された値も表すことだと思います。それは解決可能ですか、それとも再考する必要がありますか?

トライステートツリーの例

これは私が得たい結果です:

  • Checked = True (アイテム自体がチェックされている場合)
  • Checked = False (アイテム自体がチェックされておらず、すべての子/孫がチェックされていない場合)
  • Checked = Null (アイテム自体がチェックされておらず、いくつかの子/孫がチェックされている場合)
  • Checked = Null (アイテム自体がチェックされておらず、すべての子/孫がチェックされている場合)

クラス会社:

public class Company
{
    public Company()
    {
        this.childs = new List<Company>();
    }
    public int ID { get; set; }
    public string Title { get; set; }
    public List<Company> childs { get; set; }
    public int NrOfChilds { get { return childs.Count; } }
    public bool Checked {
        get { ??? }
        set { this.Checked = value; }
    }
4

1 に答える 1