为了账号安全,请及时绑定邮箱和手机立即绑定

WPF 无法在 ComboBox 中选择启用的项目

WPF 无法在 ComboBox 中选择启用的项目

PHP
杨魅力 2022-11-13 13:41:31
我正在尝试创建一个组合框,其中启用了选择列表中的某些项目而禁用了其他项目。在视觉上,我能够做到这一点,但是当我选择一个视觉上启用的项目时,什么也没有发生。XAML:<ComboBox ItemsSource="{Binding EndpointModel.DisplayFormat}"           VerticalAlignment="Center" Margin="0,0,10,0"           SelectedItem="{Binding EndpointModel.SelectMediaFormat}">     <ComboBox.ItemContainerStyle>          <Style TargetType="ComboBoxItem">              <Setter Property="IsEnabled" Value="{Binding IsEnabled}" />          </Style>     </ComboBox.ItemContainerStyle>     <ComboBox.ItemTemplate>          <DataTemplate>              <ComboBoxItem>                 <TextBlock Text="{Binding Name}" />              </ComboBoxItem>          </DataTemplate>     </ComboBox.ItemTemplate></ComboBox>当我单击上面的选定项目时,什么也没有发生 - EndpointModel.SelectMediaFormat 没有执行。删除ComboBox.ItemTemplate节的那一刻,我可以成功选择任何启用的项目,即<ComboBox ItemsSource="{Binding EndpointModel.DisplayFormat}"           VerticalAlignment="Center" Margin="0,0,10,0"           SelectedItem="{Binding EndpointModel.SelectMediaFormat}">     <ComboBox.ItemContainerStyle>          <Style TargetType="ComboBoxItem">              <Setter Property="IsEnabled" Value="{Binding IsEnabled}" />          </Style>     </ComboBox.ItemContainerStyle></ComboBox>如您所见,我正在显示对象引用。我不知道如何用实际名称替换上面的内容。正如您想象的那样,我在 WPF 还很陌生 :-)任何建议,将不胜感激。
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超5个赞

尝试使用该DisplayMemberPath属性Name(您要显示的属性)。


<ComboBox ItemsSource="{Binding EndpointModel.DisplayFormat}" 

          VerticalAlignment="Center" Margin="0,0,10,0" 

          SelectedItem="{Binding EndpointModel.SelectMediaFormat}"

          DisplayMemberPath="Name">

     <ComboBox.ItemContainerStyle>

          <Style TargetType="ComboBoxItem">

              <Setter Property="IsEnabled" Value="{Binding IsEnabled}" />

          </Style>

     </ComboBox.ItemContainerStyle>

</ComboBox>


查看完整回答
反对 回复 2022-11-13
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信