2013-04-09 93 views
0

我需要實現一個如下所示的自定義列表。您應該可以通過單擊標題對給定字段上的項目進行排序。 一條線也應該是可擴展的。當用戶點擊a +時,該行應擴展並在field2值下公開更多信息。如何在WPF中實現自定義的可排序和可擴展列表

my need :

我試圖在GridView使用一個ListView。對於每一列,我都定義了一個模板(field1值的模板,左邊是+,一個是域2值,另一個是域3值)。通過這個實現,我的問題是「如何擴展一條線」。

我也看了一下ListBox組件,但我需要手動創建標題並對齊內容。我也需要手動排序。這對我來說似乎不是一個好的解決方案。

你有什麼更好的主意,或者有什麼建議嗎?

回答

1

如果我理解正確,通過「展開」你的意思是在一行(或者特別是列表視圖項目)下顯示?

如果是這種情況,請在您的數據模板中添加一個堆棧面板,並將其可見性更改爲collamented;

通過單擊「+」按鈕,將collaped更改爲可見。

<ListView ...> 
    <ItemTemplate> 
     <GridView ...> 
      <Button Name="ExpandButton Click="OnClick"/> 
     <StackPane Visibility={Binding SomeProperty} /> 
    <Itemtemplate> 
</ListView> 

在Onclick中,更改SomeProperty = Visibility.Visible。我假設你對WPF中的數據綁定感到滿意。

+0

我試過這個解決方案,但我沒有設法得到按鈕和相應的堆棧面板之間的鏈接......你知道該怎麼做嗎? – Alytrem 2013-04-09 08:48:19

+0

查看我的更新。 – David 2013-04-09 09:16:01

2

正確的基準控制似乎是DataGrid。 它會爲您提供像頭排序功能等

您將擁有ControlTemplate通過樣式,如果你希望它看起來像截圖修改。

作爲靈感你怎麼可以GE細節擴展,下面的文章可以幫助你:

Grouping in DataGrid in WPF

你也可以考慮在看看第三方數據網格,以防標準DataGrid沒有按」無法滿足您的所有需求,但通過個人模板,您可以獲得相當的收益。

+0

WPF DataGrid也有一個可擴展的細節視圖可用於每行模板是屬性:'DataGrid.RowDetailsTemplate'。 – Anders 2015-04-29 17:49:44

相關問題