我有以下代碼,它處理12複選框上的CheckedChanged
-event。C#開關箱複選框
private void cbJournal_CheckedChanged(object sender, RoutedEventArgs e)
{
CheckBox chk = (CheckBox)sender;
if (chk.IsChecked == true)
{
switch (chk.Name)
{
case "cbErbbstg":
{
month = Months[idxMonth];
LinkToRSS.Add(link + month);
RSSname.Add(name);
Picture.Add(picture);
ID.Add(100);
}
break;
case "cbGstb":
{
month = Months[idxMonth];
LinkToRSS.Add(link + month);
RSSname.Add(name);
Picture.Add(picture);
ID.Add(200);
}
break;
}
}
現在我想要實現一個複選框,如果選中此複選框,也會檢查其他每個複選框,並將所有元素添加到列表中。
也就是說,我想以某種方式遍歷所有情況,因此每個列表都可以用值填充。
編輯: 只是:增值(名稱,鏈接等)是不同的每個複選框。
有什麼建議嗎?
創建一個字典,其中每個關鍵要素是複選框的名字的方法想要執行該複選框。現在您不需要再切換,您可以簡單地調用該複選框的預期方法。 – Steve
聽起來這個複選框會有自己的處理程序方法,它只是將所有的值添加到列表中。並設置其他複選框進行檢查。你有沒有嘗試寫另一個處理程序? – David
嗨,我並不完全知道你想要做什麼,但是如果我找到了你的話,你可以定義一個複選框列表 列表 checkBoxes; 並使用它遍歷所有的框,標記爲支票,當然用列表中的項目作爲發件人調用處理程序。 您需要初始化您的列表以及所有對這些框的引用並執行類似操作。 foreach(var checkBox in checkboxes) { 複選框。Checked = true; cbJournal_CheckedChanged(checkBox,null); } –