2010-09-24 13 views
6

Bazı verileri görüntülemek için WPF'ye yazdığım özel bir kullanıcı denetimim var. Bu kullanıcı denetimini bir listede göstermek istiyorum, ancak aynı zamanda kullanıcıların usercontrol içindeki özellikleri sıralayabilmeleri için birden çok sütun üstbilgisi (kullanıcı karyolalarındaki bazı özellikleri eşleştirmek) sağlamak istiyorum.WPF Kılavuzunda/Listede Çoklu Sütunları Yaymanın En İyi Yolu?

Bu konuda gitmenin en iyi yolu olduğundan emin değilim.

Şu anda bu kullanıcı denetimlerini görüntüleyen bir ListBox'ım var, ancak ListBox'un üstbilgisi yok ve ListBox'a birden çok üstbilginin nasıl yerleştirileceğini anlayamıyorum.

İdeal Böyle bir şey istiyorum:

Header1 Header2 Header3 Header4 
[UserControlThatSpansAllFourColumns] 

Benim diğer düşünce birden çok sütun span her öğeyi almak nasılsa DataGrid kullanmak ve etmekti, ama şimdiye kadar onu da çözemiyorum.

Herhangi bir ipucu varsa, onları karşılarım!

cevap

3

Tamam, bu hiçbir durumda "en iyi yol" değil, ama bunu içine atacağım. İhtiyacınız olan şey gibi çalışmanın bir yolu, bir ListView kullanmak yerine <ContentPresenter> kullanan bir Custom ItemContainerStyle kullanmaktır Varsayılan <GridViewRowPresenter>. Bu kısa XAML biraz bu gösterir: Burada

<ListView> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="ListViewItem"> 
         <ContentPresenter/> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ListView.ItemContainerStyle> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="Header1"/> 
      <GridViewColumn Header="Header2"/> 
     </GridView> 
    </ListView.View> 

    <Button>Item1</Button> 
    <Button>Item2</Button> 

</ListView> 

, Sütun başlıkları almak ve ürün tüm liste görünümü arasında kapsar. Bununla birlikte, bu çözümde, öğelerin işlenmesi bir tür dünyadır. ListView için tanımlanan sütunlara gerçekten bağlı değil. Bu yüzden, bu çalışmayı daha iyi yapmanın bir yolunun, ana liste görünümünde tanımlanan GridViewColumns değerini dikkate alan kendi <RowPresenter> uygulamanızı sağlamasıdır. Neyse, umarım bu bir şekilde yardımcı olur.

+0

Çok teşekkür ederim! Temelde aradığım şey bu. ContentPresenter'ı özel bir UserControl ile değiştirdim ve çalıştı. Biraz sıralama büyüsü ve tam bir çözüme sahip olacağım. –

+0

Bu yardımcı olur, lütfen bana birkaç sütunları nasıl tutabileceğimizi ve yalnızca belirli sütunları nasıl birleştirebileceğimizi söyler misiniz? – robot

İlgili konular