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

  • New Challenger - Game Reviews

    New Challeng

    20 Temmuz 2006
  • Phymec

    Phymec

    18 Temmuz 2009
  • Crossover

    Crossover

    18 HAZİRAN 2007