2009-06-11 23 views
7

Şimdi earlier post izledikten sonra şimdi DataGridColumns öğesinin görünürlüğünü bir VM bildirim özelliğine bağlamak için çalışıyorum. MSDN, bunu kolaylıkla yapabilmem gerektiğini önerir.Silverlight DataGridTextColumn Binding Görünürlük

Zaten çalıştığını biliyorum bir değer konvertör ve VM bildirim özelliği vardır

(benim sayfasındaki başka bir öğe üzerinde bu test ettik:

Ben beklediğiniz gibi bu onay kutusu kontrol görünürlük tepki
<CheckBox x:Name="chkAllTeams" Visibility="{Binding Converter={StaticResource BoolToVisibilityConverter}, Path=AllTeams}"/> 

zaman. Ben DataTextColumn aynı bağlama Ben XAML Görünürlük = hattında bir AG_E_BAD_PARSER hata alıyorum ayarlayın:?

<data:DataGridTextColumn 
Visibility="{Binding Converter={StaticResource BoolToVisibilityConverter}, Path=AllTeams}" 
/> 

Herhangi bir fikir herkes Teşekkür ederiz, Mark

cevap

9

DataGridTextColumn öğesindeki görünürlüğü, onay kutusundaki farklı bir yaratıktır. Temel olarak, bir bağımlılık özelliği değildir ve veriye bağlı olamaz. Bu işleve ihtiyacınız varsa, davranışı elde etmek için DataGridTextColumn sınıfını alt sınıflara ayırabilir ve kendi bağımlılık özelliklerinizi ekleyebilirsiniz.

  • Dikdörtgen UIElement onun Görünürlük özelliğini alır ve
  • DataGridTextColumn DataGridColumn onun Görüş alır ve bir bağımlılık özelliği olmayan bir bağımlılık özelliği olduğunu.
+0

bu ben kolay bir iş DataGridTextColumn alt sınıf mı :-(beklenen budur Ah mi? Bunun için herhangi bir çevrimiçi örneğini biliyorsunuz Mark –

+1

DataGridTextColumn için herhangi bir özel örnek bilmiyorum.Genel yaklaşım alt sınıf, görünürlük için yeni bir bağımlılık özelliği eklemek ve Datagrid.Columns yeni alt sınıfı kullanmak olacaktır. Bağımlılık özelliklerinin iyi bir açıklaması vardır: http://silverlight.net/blogs/jesseliberty/archive/2008/09/30/dependency-property-system-deeper-dive-part-1.aspx –

+0

Bu link şimdi öldü, bu yeni bir tane: http://jesseliberty.com/2008/09/30/dependency-property-system-%E2%80%93-deeper-dive-part-1/ – Oskar

-1

BoolToVisibilityConverter'i kaynak olarak ayarladınız mı?

+0

Yep. Onay kutusundaki önceki örnek bunu kanıtlıyor. –

+0

aslında sizin örneğiniz sadece kodun yarısını gösteriyor ... yine de diğerleri sizin probleminiz olmayabileceğini söylediler. vidalsasoon

-2

Bir DataTemplate kullanmak gerekir:

< DataTemplate x: Key = "cBDT" >
< (BURADA UIElement) x: Adı = "chkAllTeams" Görünürlük = "{Binding Dönüştürücü = {StaticResource BoolToVisibilityConverter}, Yol = AllTeams} "/> </DataTemplate > Daha önce olduğu gibi sözü edilen

, sadece UIElement vardır "Görünürlük" bağımlılık özelliği.

bağlamda Bunun bir örneğini görmek için:

http://blogs.msdn.com/scmorris/archive/2008/04/14/defining-silverlight-datagrid-columns-at-runtime.aspx

+2

İyi bir cevap değil - bu, * sütunundaki * elemanın * kendisini * gizler. – slugster