Deshabilitar el botón cuando se hace clic y habilitar otros botones
Frecuentes
Visto 1,340 equipos
0
tengo tres botones en mi ventana wpf ¿cuál es la mejor manera de deshabilitar el botón cuando se hace clic y habilitar otros dos botones?
<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" />
ahora uso de esta manera en cada botón :(
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;
}
}
3 Respuestas
1
¿Cuál es su definición de 'mejor manera'? ¿Es rápido y con pocas líneas de código o elegante o...
Se me ocurren varias formas:
- Use MVVM Light: 1 comando de retransmisión para los tres botones, 3 objetos de dependencia (propiedades en el modelo de vista) para isEnabled, que se establecerá en falso, solo establezca isEnabled en verdadero para el botón en el que se hizo clic (que podría enviarse como un parámetro en el comando de retransmisión).
- Use booleanconverters/booleaninverterconverters en la propiedad isEnabled.
- Cambie el estilo del botón de radio para que parezca un botón, reemplace los tres botones con un grupo de botones de radio. Cuando se selecciona un botón de radio, los otros se deseleccionarán, diseñándolos como deshabilitados. Evite que se haga clic en los elementos deseleccionados.
Saludos,
Michel
Respondido 04 Jul 12, 10:07
0
puedes hacer algo como esto en la carga de la página -
PostBackOptions postBackOptions = new PostBackOptions(Button1);
Button1.OnClientClick = "this.disabled=true;";
Button1.OnClientClick += ClientScript.GetPostBackEventReference(postBackOptions);
Respondido 04 Jul 12, 10:07
0
Para una solución XAML pura, envuélvalos en un ListBox sin estilo y vincule el clic a la selección y la selección al estado deshabilitado.
Respondido 04 Jul 12, 10:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# wpf xaml or haz tu propia pregunta.
esto es para
button1_clcik
. Puede agregar el mismo controlador para otros botones: todoscreo que esto para el proyecto web mi proyecto es wpf - Tarek dijo