WPF не может выбрать включенный элемент в ComboBox - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь создать ComboBox, в котором некоторые элементы в списке выбора включены, а другие отключены.Визуально я могу сделать это, но когда я выбираю элемент, который включен визуально, ничего не происходит.

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>

enter image description here

Когда я нажимаю на выбранный элемент выше, ничего не происходит - 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>

enter image description here.

Как видите, я показываю ссылку на объект.Я не могу понять, как заменить вышесказанное фактическими именами.

Я довольно новичок в WPF, как вы можете себе представить: -)

Любые предложения будут оценены.

1 Ответ

2 голосов
/ 26 марта 2019

Попробуйте использовать свойство 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>
...