假设我有以下DataTemplate:
<DataTemplate x:Key="ListBoxItemTemplate">
<Grid HorizontalAlignment="Stretch" Width="440">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="45" />
</Grid.ColumnDefinitions>
<Rectangle x:Name="RECTA" Grid.ColumnSpan="4" Margin="0,0,0,8" Style="{StaticResource ListItemRed}" />
<TextBlock Margin="1,1,0,0" TextWrapping="Wrap" Text="{Binding ItemDescription}" Grid.Column="1" />
<Button
Grid.Column="2"
x:Name="deleteItemButton"
BorderThickness="0"
Margin="-1,1,-17,0"
Click="deleteItemButton_Click" d:LayoutOverrides="HorizontalAlignment" Grid.ColumnSpan="2">
<Image
Source="AppBar/Icons/appbar.delete.rest.png"
Height="58"
Width="49"/>
</Button>
</Grid>
</DataTemplate>
以下列表框:
<ListBox
x:Name="ItemsListBox"
ItemsSource="{Binding ActiveList}"
Margin="8,82,8,8" Width="440"
ItemTemplate="{StaticResource ListBoxItemTemplate}" />
在数据模板上有一个矩形..我需要为列表框中存在的每个项动态分配Style =“{StaticResource ListItemRed}”。 Style =“{Binding SOMETEMPLATE}”无效。
答案 0 :(得分:1)
您需要的是等效的WPF DataTemplateSelector
这样的事情很容易重现。请参阅http://www.codeproject.com/Articles/92439/Silverlight-DataTemplateSelector
此外,我注意到模板中的网格定义的列数多于其使用的列数。