簡體   English   中英

WPF:選中/取消選中gridview單元格模板中復選框的所有復選框?

[英]WPF: Check/Uncheck all checkbox for checkboxes located in gridview cell template?

我正在嘗試為GridViewColumn的單元格模板內的許多CheckBoxes創建一個檢查/取消選中所有CheckBox 我將此列添加到GridView (以及其他列),將GridView設置為ListView的view屬性,然后將ListView綁定到自定義DataObjects的集合。 因此, ListView每一行都有一個列,其中包含一個復選框以及綁定到綁定對象的屬性路徑的列。

我想創建檢查/取消所有CheckBox通過綁定IsChecked的財產CheckBoxes ,但我不希望更改數據對象的ListView綁定到。 我的第一次嘗試是將ListView綁定到Dictionary<DataObject,Boolean> ,然后將IsChecked屬性綁定到DictionaryValue ,將其他列綁定到Key . 然后,我只是切換了Dictionary的Values ,然后選中/取消選中所有CheckBox被單擊。 綁定工作正常,但顯然字典不支持更改通知,因此CheckBoxes永遠不會更新。

有沒有人對解決這個問題的最佳方法有任何建議?

我能想到的唯一方法是將DataObject和boolean包裝在一個實現INotofyPropertyChanged的新類中。 說新類是YourCollection。 ObservableCollection< YourNewClass >實例綁定到ListView

   public class YourNewClass :INotifyPropertyChanged
{
    public YourDataObject Object { get; set; }

    private bool _isChecked;
    public bool IsChecked
    {
        get
        {
            return _isChecked;
        }
        set
        {
            _isChecked = value;
            OnPropertyChanged("IsChecked");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM