禁用按钮点击,并在其他按钮启用
问题描述:
我有三个按钮,在我的WPF窗口什么是点击时禁用按钮,使另外两个按钮启用禁用按钮点击,并在其他按钮启用
<Button Name="initialzeButton"
Width="50"
Height="25"
Margin="460,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Click="initialzeButton_Click"
Content="Start"
Cursor="Hand" />
<Button Name="uninitialzeButton"
Width="50"
Height="25"
Margin="0,0,64,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Click="uninitialzeButton_Click"
Content="Stop"
Cursor="Hand" />
<Button Name="loadButton"
Width="50"
Height="25"
Margin="0,0,9,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Click="loadButton_Click"
Content="Load"
Cursor="Hand" />
现在我在每次使用这种方式的最佳途径按钮:(
private void uninitialzeButton_Click(object sender, RoutedEventArgs e)
{
this.uninitialzeButton.IsEnabled = false;
if (!this.initialzeButton.IsEnabled)
{
this.initialzeButton.IsEnabled = true;
}
if (!this.loadButton.IsEnabled)
{
this.loadButton.IsEnabled = true;
}
}
答
你可以在页面加载时做财产以后这样的 -
PostBackOptions postBackOptions = new PostBackOptions(Button1);
Button1.OnClientClick = "this.disabled=true;";
Button1.OnClientClick += ClientScript.GetPostBackEventReference(postBackOptions);
答
是什么你对'最好的方式'的定义?它是快速的代码或优雅或..几行
几种方法来进入我的脑海:
- 使用MVVM光:1个relaycommand的三个按钮,3点依赖的对象(在视图模型属性)进行的IsEnabled其将全部设置为false,只有在单击的按钮(可以作为继电器命令中的参数发送)中将isEnabled设置为true。
- 在isEnabled属性上使用booleanconverters/booleaninverterconverters。
- Restyle单选按钮看起来像一个按钮,用单选按钮组替换三个按钮。当选择一个单选按钮时,其他按钮将被取消选择,将其设置为禁用。防止取消选择的项目被点击。
问候,
米歇尔
+0
+1“restyle单选按钮” –
答
对于纯XAML解决方案将它们包装在一个样式剥离ListBox和领带的点击选择,和选择为禁用状态。
这是'button1_clcik'。您可以为其他按钮添加相同的处理程序 – akhil
我认为这是web项目我的项目是wpf – tito11
然后添加适当的标记。 – akhil