2012-07-04 4 views
0

у меня есть три кнопки в моем окне 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; 
      } 


     } 

ответ

0

вы можете сделать Somthing как это на странице загрузки -

PostBackOptions postBackOptions = new PostBackOptions(Button1); 
      Button1.OnClientClick = "this.disabled=true;"; 
      Button1.OnClientClick += ClientScript.GetPostBackEventReference(postBackOptions); 
+0

это для 'button1_clcik'. Вы можете добавить тот же обработчик для других кнопок – akhil

+0

Я думаю, что это для веб-проекта, мой проект wpf – tito11

+0

добавить соответствующий тег. – akhil

1

Что такое ваше определение «лучший способ»? Это быстро и несколько строк кода или элегантный или ..

Несколько способов прийти мне в голову:
- Использование MVVM Light: 1 RelayCommand для трех кнопок, 3 объектов зависимостей (свойства в ViewModel) для IsEnabled, который будет установлено значение false, только для параметра isEnabled установлено значение true для нажатой кнопки (которая может быть отправлена ​​как параметр в команде relaycommand).
- Используйте booleanconverters/booleaninverterconverters в свойстве isEnabled.
- Restyle radiobutton, чтобы выглядеть как кнопка, замените три кнопки на группу радиообъектов. Когда выбран один радиобъектив, другие будут отменены, стилируйте их как отключенные. Предотвратите щелкнуть выбранные элементы.

С уважением,

Michel

+0

+1 для кнопки "restyle radio" –

0

для чистого раствора XAML завернуть их в стиле раздел ListBox и связать щелчок для выбора, и выбор в неактивное состояние.

Смежные вопросы