2014-11-20 80 views
0

我有一個控件想要根據其datacontext中的變量調整其樣式。正如我有一個列表框控股的客戶或供應商的聯繫人列表。基於變量設置樣式?

每個聯繫人都有一個名稱並設置爲客戶或供應商。每個客戶都有近期購買和電子郵件,而每個供應商都有公司名稱,傳真和銷售信息。所以基本上我想有兩個基於contact_type變量的獨立樣式。

我該怎麼做?

+1

看看'ListBox'上的'ItemTemplateSelector'。 – 2014-11-20 20:15:35

回答

1

這正是一個DataTemplateSelector是專門做

而真正的模板應該基於類 - 不是一個變量
如果客戶和供應商有一些共同的特性然後讓他們各自實現共同接口

0

如果你的繼承類ContactCustomerVendor類型,那麼你可以簡單地定義爲每種類型的不同DataTemplate和WPF會自動使用正確的。它們可以作爲ListBox的資源包含在下面的示例中,或者在樹中更高。

<ListBox ItemsSource="..."> 
    <ListBox.Resources> 

     <DataTemplate DataType="{x:Type Customer}"> 
      ... 
     </DataTemplate> 

     <DataTemplate DataType="{x:Type Vendor}"> 
      ... 
     </DataTemplate> 

    </ListBox.Resources> 
</ListBox> 
相關問題