如何在列表框中将两个属性附加在一起?
本文关键字:两个 属性 加在一起 列表 | 更新日期: 2023-09-27 18:14:26
我有两个属性,例如日期和数字。我有一个列表框,当前一个接一个地绑定它们,所以现在有两行被两个属性占用。我怎么能一个一个地把它们排起来呢?xaml不允许我将两个属性绑定到一个文本块。
下面是我的列表框现在的样子:数量日期
我想让它看起来像:
编号日期
我的列表框代码如下所示:<ListBox HorizontalAlignment="Left" Margin="78,35,0,-32" Grid.Row="1" Width="300" ItemsSource="{Binding ListOfItems}" Grid.RowSpan="3" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Number}" />
<TextBlock Text="{Binding Date, StringFormat={}{0:MM/dd/yy}}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
您可以使用Run将多个属性绑定到一个文本块
<TextBlock>
<Run Text="{Binding Number}"></Run>
<Run Text="{Binding Date, StringFormat={}{0:MM/dd/yy}}"></Run>
</TextBlock>
或 MultiBinding
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} + {1}">
<Binding Path="Number" />
<Binding Path="Date" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
如果我理解正确,你需要的是在你的StackPanel中使用水平方向。把你的DataTemplate改成下面的
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Number}" />
<TextBlock Text="{Binding Date, StringFormat={}{0:MM/dd/yy}}" />
</StackPanel>
您可能希望StackPanel
水平堆叠项目:Orientation="Horizontal"
。
(病死率。http://wpftutorial.net/StackPanel.html, http://msdn.microsoft.com/en-us/library/ms752328 (v = vs.110) . aspx)