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

  • Dive In

    Dive In

    17 Temmuz 2013
  • megablueblaster

    megablueblas

    23 HAZİRAN 2006
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006