我想拉伸类似的列表框:
<Grid Background="#FFC0BBBB">
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border HorizontalAlignment="Stretch" Grid.Row="0">
<ListBox Name="listBox" >
<ListBoxItem >
<StackPanel>
<TextBlock Text="Toto"></TextBlock>
<!--<Image Source ="" Visibility="Collapsed" />-->
</StackPanel>
</ListBoxItem>
<ListBoxItem >listbox item 2</ListBoxItem>
<ListBoxItem >
<Grid>
<TextBlock Text="Tata"></TextBlock>
<Image Source ="" />
</Grid>
</ListBoxItem>
<ListBoxItem >
<Grid>
<TextBlock Background="Aqua" Text=""></TextBlock>
<Image Source ="https://support.twitter.com/images/twitter-bird.png?1339467554" />
</Grid>
</ListBoxItem>
<ListBoxItem >
<Grid>
<TextBlock Text="Vava"></TextBlock>
<Image Source ="" />
</Grid>
</ListBoxItem>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5" Background="Pink" HorizontalAlignment="Stretch" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</Border>
</Grid>
如果你把第二项的内容放得很完美,那么我的“真正的”ListBox将会绑定,而对于某些项目,我需要为其他人设置一个ImageBlock(我需要Image + Textblock)。 我认为我将不得不使用转换器但我不知道“在哪里”放置它以及它应该返回什么。
有什么想法吗? 感谢
答案 0 :(得分:0)
如果您绑定数据,然后使用数据属性来计算ListBoxItem
中需要的控件,那么您需要使用DataTemplateSelector
http://msdn.microsoft.com/en-us/library/system.windows.controls.datatemplateselector.aspx