2009-03-11 35 views
3

DataGridTemplateColumn öğesinde bir düğmeyi devre dışı bırakmak mümkün müdür?WPF DataGrid Düğmesi Sütun Devre Dışı Bırakma

<toolkit:DataGridTemplateColumn Header="Timer" Width="50"> 
        <toolkit:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <Button Content="Start" Click="Button_Click" CommandParameter="{Binding}" /> 
         </DataTemplate> 
        </toolkit:DataGridTemplateColumn.CellTemplate> 
       </toolkit:DataGridTemplateColumn> 

Button amacı o satırla ilişkili nesneye kaydedilmiş bir zamanlayıcı başlatmak için aşağıdaki gibidir: Bir DataGridTemplate var. Zamanlayıcı kodum iyi çalışıyor ancak diğer bir satırın düğmelerini de devre dışı bırakmak istiyorum, böylece yalnızca bir zamanlayıcı çalışıyor olabilirsiniz.

bunu devre dışı bırakmak için

WorkItemGrid.Columns[WorkItemGrid.Columns.Count - 1].GetCellContent(item).IsEnabled = false

kullanılmış ve tüm düğmeleri doğru devre dışı görünebilir ama butonuna tıklarsanız iki kez yeniden etkinleştirmek ve bunun üzerine üçüncü kez tıklayın izin ve tıklayın tetikleyecek Etkinlik. Düğmeyi gerçekten devre dışı bırakmak mümkün mü?

cevap

2

Datagrid, düğmeyi bağlayabildiğim bir "IsEnabled" boolean özelliğini açığa çıkarmak için nesneye bağlı olurdum. İşleyici çağrıldığında, diğer nesneyi orijinal koleksiyonunuzdan almanız ve eşyalarını yanlış olarak değiştirmelerini sağlayın. Bu diğer düğmeleri otomatik olarak devre dışı bırakır.

"Zamanlayıcı" sınıfının denetiminde değilseniz, ızgarayı nesnelerinizin koleksiyonuna eklemeden önce kendi sınıfınıza sarabilirsiniz.

+0

benim durumumda çalışmıyor. – SANDEEP

0

diğerlerine ilaveten tıklandığını düğmesini devre dışı bırakmayı kabul edilebilir ise, o zaman ben zamanlayıcı başlatılır kez false ayarlandığında bir mülke Button.IsEnabled bağlamak istiyorum ve sonra operasyon kez true geri değiştirmek bitti.

Eğer bu kabul edilemezse, bunu yapmanın bir yolu olup olmadığından emin değilim, çünkü tanım gereği şablon her satırdaki denetimleri oluşturmak için kullanılır. Eh, , diğer tüm düğmeler için görsel ağacı arayabilir, ancak yapmak için iyi bir şey gibi görünmüyor (büyük miktarda veri için yavaş olabilir).

+0

Ben de öyle olsa da, ancak etkin olan düğmeyi bırakabilmem gerekir. Tıklanan düğmenin farklı bir şey söylemek için değiştirilmesi ve düğmelerin geri kalanının devre dışı bırakılması gerekir. – Stephan

0
its not working in my case. 

             <DataGridTemplateColumn Width="70" Header="Refund" > 
          <DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <Button x:Name="btnRefundGame" IsEnabled="{Binding RESUND_STATUS}" CommandParameter="{Binding Path=IDEN_LOGID}" Content="Refund" Click="btnRefundGame_Click" ></Button> 
           </DataTemplate> 
          </DataGridTemplateColumn.CellTemplate> 
         </DataGridTemplateColumn> 
İlgili konular