-1
입력 페이지를 만들고 있는데 리셋 버튼을 구현하려고합니다. 버튼을 클릭하면 UI가 다시 비어 있어야합니다.텍스트 상자 지우기
빈 문자열을 입력하면이 문제를 해결할 수 있다고 생각했습니다. 코드에서 작동하는 것으로 보이고 값은 ""로 변경되지만 UI에서는 입력 된 텍스트가 계속 표시되므로 빈 문자열이 표시되지 않습니다. 나는 또한 here에 제안 된 string.Empty로 시도했지만 그 또한 작동하지 않는 것 같습니다.
여기에 뭔가가 있습니까? 너무 무서운 게 아니라면, 너무 열심히 웃지 마세요.)
MVVM 패턴과 Fody Weaver를 사용하여 코드의 일부가 변경된 부분을 처리하고 있습니다.
UI를/XAML은
<TextBlock Text="Naam:"
Grid.Column="0"
Style="{StaticResource InputInputBlock}"
/>
<TextBox Foreground="White"
Grid.Column="1"
Text="{Binding Name, Mode=TwoWay}"
Style="{StaticResource InputInputBox}"
/>
<Button Content="Reset"
Height="50"
Width="150"
Grid.Column="0"
Grid.Row="2"
VerticalAlignment="Top"
HorizontalAlignment="Center"
Style="{StaticResource FlatButton}"
Command="{Binding ResetCommand}"
/>
뷰 모델
private string _name;
public string Name
{
get => _name;
set
{
_name = value;
}
}
public AddStakeholderViewModel()
{
ResetCommand = new RelayCommand(() => ResetForm());
}
private void ResetForm()
{
Name = " ";
}
은 String.Empty로 사용해보십시오. 이상적으로 txtBoxControl.Clear()는 트릭을해야합니다. - https://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.clear(v=vs.110).aspx) –
Name setter에 알림이없고 UI에 ' 명령을 호출 한 후 뷰 모델에서 변경 사항을 확인하십시오. INotifyPropertyChanged를 구현하고 setter – ASh
@PrateekShrivastava에서 이벤트를 발생 시키십시오. String.Empty를 시도했지만 아무 것도하지 않는 것 같습니다. txtBoxControl.Clear()는 MVVM 패턴에서 사용할 수 없습니다. 그렇다면 더 자세히 설명해 주시겠습니까? –