我有ListBox
绑定到我的自定义租用对象的ObservableCollection
,其对象的属性包括startDate和endDate。
但是,我希望ListBox
显示表单的每个ListBoxItem
:
01/01/2001 - 22/12/2012
这是两个绑定属性,中间有一个子串。
如何以这种方式格式化ItemSource
的输出?我理解DisplayMemberPath
指向我想要的属性,但我需要两个DisplayMemberPaths
,对吧?
感谢您的帮助。
答案 0 :(得分:2)
您可以制作自定义ItemTemplate以实现此外观:
<ListBox ItemsSource="{Binding MyItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding StartDate}"/><Run Text=" - " /><Run Text="{Binding EndDate}" />
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 1 :(得分:0)
DisplayMemberPath
只是一种快捷方式,可以说ItemTemplate
只是一个TextBlock,其文本绑定到DisplayMemberPath项。
如果您希望ItemTemplate
更详细,可以覆盖ItemTemplate
属性。
例如,
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox>
<TextBlock.Text>
<MultiBinding StringFormat="{0:M/d/yy} - {1:M/d/yy}">
<Binding Path="StartDate " />
<Binding Path="EndDate" />
</MultiBinding>
</TextBlock.Text>
</TextBox>
</DataTemplate>
</ListBox.ItemTemplate>