Aktivieren Sie die Schaltfläche und DelegateCommand
Wie kann ich das deaktivieren einer Button
bis die gewünschten Daten werden eingegeben in eine TextBox
?
Bin ich verbindlich eine Button
zu einem ICommand
:
public ICommand LoginCommand
{
get
{
if (_loginCommand == null)
{
_loginCommand = new DelegateCommand<string>(this.Login, this.IsValid);
}
return _loginCommand;
}
}
in XAML wie diese:
<Button Style="{StaticResource LoginButton}" Content="Login" Command="{Binding LoginCommand}" CommandParameter="{Binding Text, ElementName=txtUserName}" />
InformationsquelleAutor Raj | 2009-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nur zu erhöhen, die requery-event. Das ist einfach mit einem DelegateCommand. Hier erfahren Sie, wie Ihre ViewModel Aussehen würde.
Auch, wenn es nicht einen zwingenden Grund, um Ihre Eigenschaft vom Typ DelegateCommand, dann sollten Sie dies tun.
Das ist ziemlich viel es.
InformationsquelleAutor Anderson Imes
Wo ist
DelegateCommand
definiert? Überprüfen Sie den Konstruktor, es wird wahrscheinlich erwarten, dass die zweiten parameter, der ein Prädikat, das Ergebnis wird zugeordnetICommand
'sCanExecute
.Ich gehe davon aus, dass
this.IsValid
ist ein delegate-Methode, die true zurückgibt, wenn die Zeichenfolge.Länge > 0 für die Befehls-parameter, den Sie übergeben, aus der Sicht... Versuchen Sie es immer false zurückgeben, nur um zu überprüfen, die UI ist die Schaltfläche deaktivieren.BEARBEITEN:
Um die Parameter in der IsValid-Methode, verwenden Sie die folgende syntax:
ändern Sie die syntax der IsValid-Methode akzeptiert einen string-parameter, dann decalre Ihre DelegateCommand wie:
HTH 🙂
DelegateCommand ist von der Composite WPF aka Prism-Bibliothek: Microsoft.Praktiken.Composite.- Präsentation.Befehle
Sie müssen übergeben Sie die CommandParameter durch die Methode... Wird von update zu beantworten, um zu zeigen, wie Sie.
Mit meinem aktuellen code IsValid Methode ist immer Befehls-parameter. Das problem, das ich konfrontiert ist, dass, obwohl Sie den text ändern, der Befehl wird nicht erneut überprüft, für die CanExecute.
Ich denke, dass Problem bezieht sich auf John Smith-Eintrag hier: joshsmithonwpf.wordpress.com/2008/06/17/...
InformationsquelleAutor kiwipom