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

  • FND Films

    FND Films

    2 Mayıs 2006
  • Jabari Johnson

    Jabari Johns

    18 Ocak 2008
  • MagicofRahat

    MagicofRahat

    13 Temmuz 2007