Qual è il modo più semplice in WPF di abilitare un Button
quando l'utente digita qualcosa in un ?Come abilitare un pulsante quando un utente digita in una casella di testo
risposta
utilizzare il comando semplice
<TextBox Text={Binding Path=TitleText}/>
<Button Command="{Binding Path=ClearTextCommand}" Content="Clear Text"/>
Ecco il codice di esempio nella vista del modello
public class MyViewModel : INotifyPropertyChanged
{
public ICommand ClearTextCommand { get; private set; }
private string _titleText;
public string TitleText
{
get { return _titleText; }
set
{
if (value == _titleText)
return;
_titleText = value;
this.OnPropertyChanged("TitleText");
}
}
public MyViewModel()
{
ClearTextCommand = new SimpleCommand
{
ExecuteDelegate = x => TitleText="",
CanExecuteDelegate = x => TitleText.Length > 0
};
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
Per ulteriori informazioni vedere Marlon Grechs SimpleCommand
Verificate anche il modello MVVM progetto/Toolkit da http://blogs.msdn.com/llobo/archive/2009/05/01/download-m-v-vm-project-template-toolkit.aspx. Usa il comando DelegateCommand e dovrebbe essere un ottimo modello di partenza per qualsiasi progetto.
Aggiungi un callback al TextBox che si attiva in ogni tratto. Verificare la presenza di vuoto in tale callback e abilitare/disabilitare il pulsante.
SE non si stavano utilizzando i comandi, un'altra alternativa sta utilizzando un convertitore.
Ad esempio, utilizzando un Int generico per Bool convertitore:
[ValueConversion(typeof(int), typeof(bool))]
public class IntToBoolConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
try
{
return (System.Convert.ToInt32(value) > 0);
}
catch (InvalidCastException)
{
return DependencyProperty.UnsetValue;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return System.Convert.ToBoolean(value) ? 1 : 0;
}
#endregion
}
Poi sui pulsanti proprietà IsEnabled:
<Button IsEnabled={Binding ElementName=TextBoxName, Path=Text.Length, Converter={StaticResource IntToBoolConverter}}/>
HTH,
Dennis
utilizzare un trigger !
<TextBox x:Name="txt_Titel />
<Button Content="Transfer" d:IsLocked="True">
<Button.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=txt_Titel, Path=Text}" Value="">
<Setter Property="Button.IsEnabled" Value="false"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
Perché tutti fanno le cose così complicate!
<TextBox x:Name="TB"/>
<Button IsEnabled="{Binding ElementName=TB,Path=Text.Length}">Test</Button>
Nient'altro necessario ......
La chiave di questo è in sé vincolante ..
Aggiungi UpdateSourceTrigger = PropertyChanged
questo è la soluzione più semplice
- 1. HTML - Tenere segnaposto quando utente digita
- 2. Come visualizzare lo spinner di caricamento in una casella di testo quando si fa clic su un pulsante?
- 3. WPF come posso creare una casella di testo in modo dinamico e trovare la casella di testo su un pulsante?
- 4. Come sparare cliccare su un pulsante se il tipo di utente in una casella di input
- 5. Fire TextBox.TextChanged immediatamente quando si digita il testo in
- 6. Testo segnaposto in una casella di testo vuota (vuota) su un modulo di accesso
- 7. Come cancellare una casella di testo dopo aver fatto clic su un pulsante in WPF?
- 8. Utilizzando jQuery, nascondi una casella di testo se è selezionato un pulsante di opzione
- 9. Il test dell'interfaccia utente non riesce quando digita il testo in una visualizzazione di testo quando viene eseguito da un bot Xcode
- 10. Come inserire un suggerimento in un asp: casella di testo
- 11. Come abilitare l'inserimento nella casella di testo con Ctrl + v
- 12. Ottieni testo quando si preme invio in una casella di testo in wxPython
- 13. come disabilitare/abilitare un pulsante da jquery
- 14. Pulsante all'interno di una casella di testo winforms
- 15. Allineamento casella di testo e pulsante, bootstrap
- 16. Come si evidenzia il testo in una casella di testo in un programma Winforms C#?
- 17. html catch event quando l'utente digita in un input di testo
- 18. C# - come impostare il testo nella casella di testo per mostrare un suggerimento quando la casella di testo è vuota?
- 19. Visualizzazione di un "pulsante di cancellazione" (pulsante Elimina) in una casella di testo del webapp per iPhone
- 20. Testo evidenziato automatico in un controllo casella di testo
- 21. jQuery: rende visibile un pulsante quando un TextBox ha contenuto
- 22. javascript - unfocus una casella di testo
- 23. Come abilitare/disabilitare un pulsante in TypeScript 1.5?
- 24. Come disattivare/attivare un pulsante con una casella di controllo, se selezionata
- 25. Set Fare clic in una casella di testo con zk
- 26. Ordinamento di una casella di riepilogo quando si fa clic su un pulsante con MVVM
- 27. jQuery può aggiungere virgole mentre si digita un numero utente?
- 28. Come inserire testo da una casella di testo in selenio
- 29. Come abilitare/disabilitare il pulsante di zoom (pulsante verde +)?
- 30. Come aggiungere testo in una casella di testo multilinea?
+1 semplice e funzionante - grazie! –
U, ser, sei un genio! –
Vorrei poterlo trasmettere ancora più – cppguy