[英]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
屬性綁定到Dictionary
的Value
,將其他列綁定到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.