我有一个转换器,该转换器绑定到元素为MyType类型的集合。我想将文本设置为带有转换器的声音。因此,从快速测试开始,我首先尝试将所有元素的文本设置为文本“ Hello”。
我正在尝试使用以下代码:
<ComboBox
DisplayMemberPath="MyProperty"
SelectedItem="{Binding Path=MySelectedItem, Mode=TwoWay}"
ItemsSource="{MyViewModelCollection}">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="TextBlock.Text" Value="Hello"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
但是,它显示了DisplayMemeberPath中设置的属性的值。
因此,对于第一步,我想知道如何将所有文本设置为“ Hello”,但是我的想法是使用带有comboBoxItem的转换器,并根据一些检查,返回我想要的文本显示。
谢谢。
答案 0 :(得分:1)
将ItemTemplate
属性(而不是DisplayMemberPath)设置为带有TextBlock的适当DataTemplate:
<ComboBox ItemsSource="{Binding MyViewModelCollection}"
SelectedItem="{Binding MySelectedItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyProperty,
Converter={StaticResource MyConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>