2013-08-05 168 views
0

設置一個列表框項目模板好吧我有一個WPF應用程序,在此我有一個Resource Dictionary,我爲ListBox Item.TemplateStyle1,Style2)創建了兩種不同的樣式。 並設置我的起動方式是這樣的:WPF從代碼

<ListBox x:Name="Lister" ItemTemplate="{DynamicResource Style1}"/> 

現在我想,讓用戶隨時進行更改他希望ListBoxItem的風格。 但我沒有線索如何做這件事。 在此先感謝。

回答

3
<ListBox ItemsSource="{Binding YourList}" 
     ItemTemplate="{DynamicResource Template1}"> 
    <ListBox.Style> 
     <Style TargetType="ListBox"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding SomeConditionInTheViewModel}" Value="True"> 
        Setter Property="ItemTemplate" Value="{DynamicResource Template2}"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ListBox.Style> 
</ListBox 
+0

布拉沃 - 令人印象深刻的速度,你觸發了一個觸發器。 – Gjeltema

+0

顯式設置優先於觸發器,因此默認的ItemTemplate應該在樣式設置器中定義。 – nmclean

+0

我設法使其工作,但在另一方面。我覺得很難做出約束力。我只是不能讓它工作。所以我做了這樣的C#代碼是這樣的: Lister.ItemTemplate =(DataTemplate)FindResource(「Style2」); – oimitro