SORU
23 NİSAN 2009, PERŞEMBE


Yenileme WPF Komut

Herkes CanExecute özel bir komut (Josh Smith RelayCommand) adlı zorlamak nasıl biliyor mu?

Tipik olarak, CanExecute etkileşim UI üzerinde olduğunda denir. Ben bir şey tıklarsanız, benim komutları güncellendi.

CanExecute durumu/kapalı perde arkasında bir zamanlayıcı tahrik başladığı bir durum var. Bu kullanıcı etkileşimi kullanıcı arayüzü ile etkileşim kadar çağrılmaz tarafından yönlendirilen değil çünkü. Sonuç Button benim kalır kullanıcı tıklama kadar etkin/devre dışı. Tıkladıktan sonra, düzgün güncellenir. Bazen Button etkin görünür, ancak kullanıcı tıklattığında ateş etmek yerine devre dışı olarak değiştirir.

Nasıl zamanlayıcı CanExecute etkileyen özelliği değiştiğinde kodda bir güncelleştirme zorlayabilir miyim? CanExecute, ama yardım etmedi etkileyen özelliği ateş PropertyChanged (INotifyPropertyChanged) çalıştım.

Örnek XAML:

<Button Content="Button" Command="{Binding Cmd}"/>

Örnek kod arkasında:

private ICommand m_cmd;
public ICommand Cmd
{
    if (m_cmd == null)
        m_cmd = new RelayCommand(
            (param) => Process(),
            (param) => EnableButton);

    return m_cmd;
}

// Gets updated from a timer (not direct user interaction)
public bool EnableButton { get; set; }

CEVAP
23 NİSAN 2009, PERŞEMBE


CommandManager.InvalidateRequerySuggested()

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • KliptOut KwazeeKilla

    KliptOut Kwa

    24 ŞUBAT 2010
  • talkandroid

    talkandroid

    27 Mayıs 2010
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011