我定义了一个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中的按钮时启用按钮。
你有什么提示吗?
答案 0 :(得分:2)
你的wpf组合框有一个属性“Text”,其中包含用户输入的文本。您必须编写一些代码来检查输入的文本是否与您的itemssource中的任何内容匹配。
答案 1 :(得分: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>