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

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008