WPF 无法 select 启用 ComboBox 中的项目

WPF unable to select enabled item within ComboBox

我正在尝试创建一个 ComboBox,其中 selection 列表中的某些项目已启用,而其他项目已禁用。在视觉上,我能够做到这一点,但是当我 select 一个视觉上启用的项目时,没有任何反应。

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>

当我点击上面的 selected 项目时,没有任何反应 - EndpointModel.SelectMediaFormat 没有被执行。

当我删除 ComboBox.ItemTemplate 节时,我可以成功 select 任何启用的项目,即

<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 还很陌生:-)

如有任何建议,我们将不胜感激。

尝试使用 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>