我有一個DataTemplate包含一個CheckBox和ListBox。當選中CheckBox時,我想更改ListBox上的ItemTemplate屬性以更改每個項目的外觀。基於CheckBox值設置ItemTemplate
現在,它看起來像這樣:
<DataTemplate DataType={x:Type MyViewModel}>
<DockPanel>
<CheckBox DockPanel.Dock="Bottom"
Content="Show Details"
HorizontalAlignment="Right"
IsChecked="{Binding ShowDetails}"
Margin="0 5 10 5" />
<ListBox ItemsSource="{Binding Items}"
ItemTemplate="{StaticResource SimpleItemTemplate}"
Margin="10 0 10 5">
<ListBox.Triggers>
<DataTrigger Binding="{Binding ShowDetails}" Value="True">
<Setter Property="ItemTemplate"
Value="{StaticResource DetailedItemTemplate}" />
</DataTrigger>
</ListBox.Triggers>
</ListBox>
</DockPanel>
</DataTemplate>
然而,當我嘗試編譯,我得到以下錯誤信息:
價值「的ItemTemplate」不能被分配到財產「屬性'。無效的PropertyDescriptor值。
和
無法在類型 'ContentPresenter' 找到靜態成員 'ItemTemplateProperty'。
我對WPF還比較陌生,所以也許我有點不太明白?
更新:我已經意識到,我可以只使用一個觸發器,而不是一個DataTrigger,並設置SOURCENAME的複選框,但無論如何,發生同樣的錯誤。 – jeremyalan 2010-04-08 04:06:43