wpf调试错误输出System.WIndows.Data错误25

dea*_*eff 6 debugging wpf combobox

我有一个定制风格的Combobox工作正常.它放在usercontrol中并绑定到数据结构.我使用DisplayMemberPath只显示Combobox TextBox中的一个元素.ComboBox样式取自MSDN并多次使用.所以这里没有显示.

<UserControl x:Class="wpf.projext1.MyComboBox"
         x:Name="MyControl"
         ...
    <ComboBox Style="{StaticResource ComboBoxStyle}"
                  Text="{Binding ElementName=MyControl, Path=Text}"
                  IsEditable="True"
                  IsTextSearchEnabled="False"
                  StaysOpenOnEdit="True"
                  ItemsSource="{Binding ElementName=MyControl, Path=MyItemsSource}"
                  DisplayMemberPath="Name"
    </ComboBox
Run Code Online (Sandbox Code Playgroud)

我得到以下令人讨厌的错误消息填充输出窗口:

System.Windows.Data Error: 25 : Both 'ContentTemplate' and 'ContentTemplateSelector' are set;  'ContentTemplateSelector' will be ignored. ComboBoxItem:'ComboBoxItem' (Name='')
Run Code Online (Sandbox Code Playgroud)

如果我遗漏了

DisplayMemberPath="Name"
Run Code Online (Sandbox Code Playgroud)

...没有显示关于错误25的调试输出.但我绝对需要DiplayMemberPath ="名字"!你有想法解决这个问题吗?

Bla*_*hma 12

你不能同时设置DisplayMemberPathItemTemplate在同一时间.

DisplayMemberPath用于告诉ItemsControl在显示对象时显示哪个属性.如果您已经传递了自定义ItemTemplate,那么设置此字段就没有了,因为您可以选择如何在该ItemTemplate中显示该对象.

由于MSDN的默认Combobox样式也设置了ItemTemplate,这可能是导致错误的原因.


dea*_*eff 6

已解决:使用TextSearch附加属性,无论是否启用了TextSearch!

TextSearch.TextPath="Name"
Run Code Online (Sandbox Code Playgroud)