2015-10-22 30 views
-1

我想創建一個if語句在我的xaml.cs代碼,這將允許我在複選框中啓用某些值,基於哪個按鈕被按下
例如:按鍵1使值1,2,3和4,按鈕2使5,6,7和8如果聲明基於按鈕點擊啓用某些值C#和XAML

這是我迄今爲止

private void EnableAll(object sender, RoutedEventArgs e) 
     { 
      if(1 == true) 
      { 
       chk_1.IsChecked = true; 
       chk_2.IsChecked = true; 
       chk_3.IsChecked = true; 
       chk_4.IsChecked = true; 
      } 

      if(1 == false) 
      { 
       chk_1.IsChecked = false; 
       chk_2.IsChecked = false; 
       chk_3.IsChecked = false; 
       chk_4.IsChecked = false; 
      } 

      if(2 == true) 
      { 
       chk_5.IsChecked = true; 
       chk_6.IsChecked = true; 
       chk_7.IsChecked = true; 
       chk_8.IsChecked = true; 
      } 

      if(2 == false) 
      { 
       chk_5.IsChecked = false; 
       chk_6.IsChecked = false; 
       chk_7.IsChecked = false; 
       chk_8.IsChecked = false; 
      } 
     } 

這一點與所述的XAML事件低於

 <Button Name="btnEnable_1" Content="Enable" Click="#make 1 true#"/> 
     <Button Name="btnDisable_1" Content="Disable" Click="#make 1 false#"/> 

Click =「」中的位需要分別給出1的值爲true和false

我知道我想要什麼,但我不知道如何鏈接它們,並且我確定有一個更簡單如何做到這一點...如果任何人都可以提供幫助,那將會很棒!

+1

你的按鈕只需添加兩個單獨的事件處理程序。 – kskyriacou

+0

我已經有了這個,但它使代碼更長,更整潔,我希望if語句可以幫助我 - 更何況,我有一個按鈕來禁用所有內容,以及按鈕只做一定數量 – Badja

+1

@kyriacos_k - 我正要說同樣的事情! 這不是最好的架構,但你可以讓你的點擊處理程序完成全部切換。所以btnEnable_1點擊會設置1-4被選中,5-8被取消選中,而btnDisable_1會做相反的操作? –

回答

1

添加事件處理每個按鈕

<Button Name="btnEnable_1" Content="Enable" Click="myButton_Click" /> 
    <Button Name="btnDisable_1" Content="Disable" Click="myButton_Click" /> 

而且在後面的代碼:

private void myButton_Click(object sender, RoutedEventArgs e) 
    { 
     var button = (Button)sender; 
     var enabled = button.Name == "btnEnable_1"; 

     chk_1.IsChecked = enabled; 
     chk_2.IsChecked = enabled; 
     chk_3.IsChecked = enabled; 
     chk_4.IsChecked = enabled; 
     chk_5.IsChecked = !enabled; 
     chk_6.IsChecked = !enabled; 
     chk_7.IsChecked = !enabled; 
     chk_8.IsChecked = !enabled; 
    } 
+0

以下檢查我的答案謝謝。所以這應該只有1-4,並且它將啓用4個複選框。當我編譯它時,禁用按鈕也起作用(沒有chk_5以上)爲什麼會這樣?如果我添加了'var disabled',啓用按鈕將被禁用,並且禁用按鈕將啓用 – Badja

+1

我不確定您要問什麼 - 但是如果您只希望啓用四個複選框而不禁用其他選項,只需在button.Name上使用if語句並相應地啓用所需的複選框。 – kskyriacou

+0

是的,我想這樣做,啓用1只檢查1-4,啓用2只檢查5-8,這種模式最多可達64個值(16個啓用/禁用按鈕)。所以它會'如果(button.Name == btnEnable_1){chk_1.IsChecked = enabled; **等**}?或者是其他東西? – Badja