2012-02-19 17 views
5

Aşağıdaki kodu fark:IsEnabled opsiyonel bağlayıcı mı?

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}" 
    IsEnabled="{Binding Path=CanExecuteShowTimbresCommand}"/> 

eşit olarak davranır:

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}"> 

CanExecuteShowTimbresCommand otomatik IsEnabled özelliğine bağlı Anlamı. doğrudur ve neden var mı?

cevap

10

Genellikle bunun için vardır, hepsi bu komut en CanExecutefalse ise bir Commandfalse için IsEnabled ayarlayacaktır kabul hangi kontrol eder.

MSDN

:

komutları diğer bir amacı, bir eylem mevcut olup olmadığını işaret eder. [...] Bir düğme CanExecuteChanged olayına abone olabilir ve CanExecuteyanlış döndürürse veya CanExecutetrue döndürdüğünde etkinleştirilmişse devre dışı bırakılabilir.

+0

teşekkürler ... ben XAML kod çok kaldırmak anlamına gelir. –

+1

@MichelKeijzers: Şimdiye kadar hep dealed ile 'IsEnabled' Kendinizi Gerçekten de böyle olursa. –

+0

Evet Şu anda her yerde var aynı komutu için IsEnabled = CanExecute ile birlikte bağlayıcı bir komut. Cevabınızda yaptığınız ekstra düzenlemenin otomatik olarak yapıldığını düşünüyorum. –