2013-06-03 97 views
0

我們在用戶控件上有6 CheckBox es。我們希望能夠確定是否每個盒子都被檢查。我們在後面的代碼中嘗試這樣做:檢查複選框的IsChecked屬性時出現意外行爲

private const short Black = 1; 
private const short White = 32; 
private const short Asian = 2; 
private const short Islander = 8; 
private const short AmInd = 4; 
private const short Alask = 16; 

private void RaceCheckboxes_Checked(object sender, System.Windows.RoutedEventArgs e) 
{ 
    short race = 0; 

    if (cbAlask.IsChecked == true) 
    { 
     race += Alask; 
    } 
    if (cbAmInd.IsChecked == true) 
    { 
     race += AmInd; 
    } 
    if (cbIslander.IsChecked == true) 
    { 
     race += Islander; 
    } 
    if (cbAsian.IsChecked == true) 
    { 
     race += Asian; 
    } 
    if (cbWht.IsChecked == true) 
    { 
     race += White; 
    } 
    if (cbBlack.IsChecked == true) 
    { 
     race += Black; 
    } 

    atr.Race = race; 
} 

我不明白的是這個。當用戶點擊名爲cbWht的複選框時,它會輸入此事件,並且所有6個複選框IsChecked屬性都爲true。這是爲什麼?只有其中一個被檢查。

+1

你可以發佈你的XAML嗎? –

+0

我發現問題在於XAML。正在將數據綁定到數據庫中的相同字段。改變一個,它影響了所有六個。愚蠢的錯誤。 – Rod

回答

0

嘗試使用Clicked事件而不是Checked事件。即RaceCheckboxes_Clicked

+0

就WPF中的複選框而言,Clicked和Checked事件之間有什麼區別? – Rod

相關問題