2014-06-26 25 views

回答

0

嗯,我相信有很多方法可以做到这一点!一种方法是使用DataTrigger

要做到这一点,你将按钮的命令属性绑定到其Execute功能视图模型设置一个变量的命令:

<Button Command="{Binding SetButton1Command}"/> 
<Button Command="{Binding SetButton2Command}"/> 

这些功能可以做一些简单的,像拨动一个布尔值。我会假设你这样做,因为只有两个按钮。更多的按钮需要一个枚举或其他东西(或者只是使用一个RadioButton,这整个事情变得更容易)。

随着bool财产是一套,然后,我会用一个DataTrigger设置背景:

<Button Command="{Binding SetButton1Command}"/> 
    <Button.Style> 
     <Style> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Path=FlagProperty}" Value="True"> 
       <Setter Property="Foreground" Value="Red" /> 
      </DataTrigger> 
     </Style.Triggers> 
     </Style> 
    <Button.Style> 
</Button> 

如果改为使用RadioButton(东西我会建议),你只触发“器isChecked”变成(与RelativeSource或ElementName绑定)。

-1

这是为winforms,但也将在webforms上工作。 这就是:

private void button1_Click(object sender, EventArgs e) 
    { 
     Button btn = (Button)sender; 

     if (btn.Name == "button1") 
     { 
      button1.BackColor = Color.Red; 
      button2.BackColor = Color.Transparent; 
     } 
     else 
     { 
      button1.BackColor = Color.Transparent; 
      button2.BackColor = Color.Red; 
     } 
    } 

把两个按钮在窗体上,它们连接到相同的事件。

希望这有助于。

+2

-1这个问题是关于WPF,而不是winForms或Web表单。虽然这是一种可以在WPF中工作的方法,但这不是一种标准的方式。在WPF应用程序中首选MVVM方法。 – BradleyDotNET

+0

@BradleyDotNET我不好,误解了。 –

相关问题