반응형
WPF에서 비활성화 버튼을 선택하시겠습니까?
WPF 앱에 버튼과 텍스트 박스가 있습니다.사용자가 텍스트 상자에 텍스트를 입력할 때까지 버튼을 활성화하지 않으려면 어떻게 해야 합니까?
이것으로 충분합니다.
<StackPanel>
<TextBox x:Name="TheTextBox" />
<Button Content="Click Me">
<Button.Style>
<Style TargetType="Button">
<Setter Property="IsEnabled" Value="True" />
<Style.Triggers>
<DataTrigger Binding="{Binding Text, ElementName=TheTextBox}" Value="">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</StackPanel>
MVVM에서는 View Model에 두 가지 속성이 있습니다(많은 것을 훨씬 쉽게 할 수 있습니다).TextTextBox에 바인드 되어 있으면,ICommand소유물Apply(또는 이와 유사) 버튼에 바인딩되어 있습니다.
<Button Command="Apply">Apply</Button>
그ICommand인터페이스에는 메서드가 있습니다.CanExecute그곳이 당신이 돌아오는 곳이다.true if (!string.IsNullOrWhiteSpace(this.Text)나머지는 WPF에 의해 실행됩니다(이네이블화/디세이블화, 클릭 시 실제 명령어 실행).
링크된 기사에 자세히 설명되어 있습니다.
코드별:
btn_edit.IsEnabled = true;
XAML 기준:
<Button Content="Edit data" Grid.Column="1" Name="btn_edit" Grid.Row="1" IsEnabled="False" />
다른 투고처럼 우아하지 않은 것은 알지만, 이것은 같은 것을 실현하는 방법에 대한 보다 간단한 xaml/codebehind 예시입니다.
Xaml:
<StackPanel Orientation="Horizontal">
<TextBox Name="TextBox01" VerticalAlignment="Top" HorizontalAlignment="Left" Width="70" />
<Button Name="Button01" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,0,0,0" />
</StackPanel>
코드 비하인드:
Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
Button01.IsEnabled = False
Button01.Content = "I am Disabled"
End Sub
Private Sub TextBox01_TextChanged(ByVal sender As Object, ByVal e As System.Windows.Controls.TextChangedEventArgs) Handles TextBox01.TextChanged
If TextBox01.Text.Trim.Length > 0 Then
Button01.IsEnabled = True
Button01.Content = "I am Enabled"
Else
Button01.IsEnabled = False
Button01.Content = "I am Disabled"
End If
End Sub
가입할 수 있습니다.TextChanged의 이벤트TextBox텍스트가 비어 있는 경우,Button디세이블로 합니다.또는 이 파일을 바인드할 수도 있습니다.Button.IsEnabled의 재산TextBox.Texttrue를 반환하고 false를 반환하는 변환기를 사용합니다.
언급URL : https://stackoverflow.com/questions/2906346/disable-button-in-wpf
반응형
'programing' 카테고리의 다른 글
| 어떤 WPF 책을 추천하시겠습니까? (0) | 2023.04.19 |
|---|---|
| 셀에 문자열 X가 포함되어 있는 경우 행 전체를 삭제합니다. (0) | 2023.04.19 |
| UIButton 제목 텍스트 색상은 어떻게 설정하나요? (0) | 2023.04.19 |
| 팬더: 병합된 세포를 사용하여 Excel 읽기 (0) | 2023.04.19 |
| 문자열을 C#의 열거형으로 변환합니다. (0) | 2023.04.19 |