首页 文章

WPF Editable Combobox在键入时不会更改SelectedValue

提问于
浏览
1

我定义了一个Combobox,其SelectedValue绑定到视图模型VM.SelectedServiceTypeId上的属性

<ComboBox Name="ServiceTypeComboBox"
          IsEditable="True"
          Grid.Row="1"
          Grid.Column="1"
          Margin="5"
          DisplayMemberPath="ServiceTypeName"
          ItemsSource="{Binding ServiceTypes,Mode=TwoWay}"
          SelectedValue="{Binding SelectedServiceTypeId, Mode=TwoWay}"
          SelectedValuePath="ServiceTypeId" 
          Loaded="ServiceTypeComboBox_Loaded"
          />

当用户在下拉菜单中选择项目时,该值会正确更新,但会导致组合框IsEditable,用户可以键入他想要的任何内容,而不是ItemSource中的值 . 在这种情况下,SelectedValue不会更改 .

我需要做的是当SelectedValue属于ItemsSource中的按钮时启用按钮 .

你有一些提示吗?

2 回答

  • 2

    你的wpf组合框有一个属性“Text”,它包含用户输入的文本 . 您必须编写一些代码来检查输入的文本是否与您的itemssource中的任何内容匹配 .

  • 0
    <Button Content="Click">
            <Button.Style>
                <Style TargetType="Button">
                    <Setter Property="IsEnabled" Value="True"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=ServiceTypeComboBox, Path=SelectedValue}" Value="{x:Null}">
                            <Setter Property="IsEnabled" Value="False"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Button.Style>
        </Button>
    

相关问题