这是我的ComboBox:
WeeklyStartDate和WeekNumber我想在DisplayMember属性中显示。但是WPF说我不能使用DisplayMember,因为我已经使用了ItemTemplate ......
当我点击ComboBox中的某个项目时,如何使用以下代码显示自定义DisplayMember?
目前正在使用ToString()方法呈现DisplayMember,显示XXX.ViewModel.WeeklyDateViewModel,这是命名空间+类型。
<ComboBox
Style="{StaticResource ComboBoxStyle1}"
AlternationCount="2"
FontSize="16"
VerticalContentAlignment="Center"
Width="150"
IsEditable="True"
SelectedItem="{Binding SelectedWeeklyDateViewModel,Mode=TwoWay}"
ItemContainerStyle="{StaticResource alternateColor}"
ItemsSource="{Binding WeeklyDatesList}">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel VirtualizingStackPanel.VirtualizationMode="Recycling" />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Width="100" Foreground="blue" Text="{Binding WeekStartDate,Mode=TwoWay, StringFormat='yyyy-MM-dd'}" />
<TextBlock Text=" " />
<TextBlock Width="100" Foreground="Red" Text="{Binding WeekNumber}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
答案 0 :(得分:1)
快速而脏的方法:覆盖WeeklyDateViewModel上的ToString以返回要显示的字符串