在MVVM中选择组合框的特定项目时启用文本框

用户名

我正在使用MVVM概念来开发我的项目。我有组合框和文本框的视图,我希望仅在选择组合框的特殊项时才启用文本框。组合框的项源绑定到字符串列表,而我要做的就是选择列表的第四个元素“ Other”时启用文本框,否则禁用。以为,我有

      <ComboBox x:Name="department_Combobox"   HorizontalAlignment="Left" 

    ItemsSource=" {Binding Path= DepartmentList}" SelectedItem="{Binding Department}"

    VerticalAlignment="Top" Width="200" Height="25" SelectedIndex="0" Grid.Row="17" 

     Grid.RowSpan="2" Grid.Column="1"  >

     </ComboBox>

     <TextBox x:Name="department_Name_TextBox"  Text="{Binding  

   Path=Department,Mode=TwoWay}"    Grid.Row="17"  TextWrapping="Wrap" Grid.Column="2"

   Width="201" Height="24" VerticalAlignment="Center" HorizontalAlignment="Right"     />

当仅选择Departmentlist的第4个列表时,如何使启用文本框;选择其他元素时,如何禁用文本框?谢谢。

李澳

正如King King所说,您应该为此使用触发器。我还要添加一个属性“ SelectedDepartment”来绑定您的组合框SelectedItem。否则,当您在文本框中键入内容并更新Department时,它将不再符合触发器的条件,并且将禁用文本框。在其他地方更改逻辑以返回SelectedDepartment值,除非该值是“ Other”,然后使用Department值。

我添加了默认为False的IsEnabled和绑定到SelectedDepartment的触发器,该触发器将在值为“ Other”时启用TextBox。

<TextBox x:Name="department_Name_TextBox" 
         Text="{Binding Path=Department, Mode=TwoWay}"
         Grid.Row="17"
         TextWrapping="Wrap"
         Grid.Column="2"
         Width="201"
         Height="24"
         VerticalAlignment="Center"
         HorizontalAlignment="Right">
   <TextBox.Style>
      <Style TargetType="{x:Type TextBox}">
         <Setter Property="IsEnabled"
                 Value="False" />
         <Style.Triggers>
            <DataTrigger Binding="{Binding Path=SelectedDepartment}"
                         Value="Other">
               <Setter Property="IsEnabled"
                       Value="True" />
            </DataTrigger>
         </Style.Triggers>
      </Style>
   </TextBox.Style>
</TextBox>

编辑:若要清除组合框关闭“其他”时TextBox值,我将添加一个OnSelectedDepartmentChanged方法来处理此问题。

private string _SelectedDepartment;
public string SelectedDepartment
{
   get { return _SelectedDepartment; }
   set
   {
      if (value == _SelectedDepartment)
         return;

      _SelectedDepartment = value;
      RaisePropertyChanged("SelectedDepartment");
      OnSelectedDepartmentChanged();
   }
}

private void OnSelectedDepartmentChanged()
{
    if (!SelectedDepartment.Equals("Other"))
       Department = string.Empty;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从组合框中选择项目时,将新数据添加到文本框中

来自分类Dev

从组合框中选择特定选项应该使文本框字段强制输入文本

来自分类Dev

文本框启用禁用组合框选择

来自分类Dev

使用VB在Word 2007中选择选项按钮时启用ActiveX文本框

来自分类Dev

从文本框中选择文本时触发功能

来自分类Dev

在AngularJS中选择单选按钮时,专注于文本框

来自分类Dev

在Java的组合框中选择项目时更新JTable

来自分类Dev

从组合框中选择项目时显示 MessageBox

来自分类Dev

如何在文本框获得焦点时选择文本框中的特定文本

来自分类Dev

选择特定项目时移除组合框项目

来自分类Dev

在面板中选择多个文本框

来自分类Dev

使用MVVM在WPF文本框中选择和复制文本

来自分类Dev

获得焦点时尝试在对话框的文本框中选择文本

来自分类Dev

如何使用JavaScript获取文本框中选择框的所有项目

来自分类Dev

如何使用JavaScript获取文本框中选择框的所有项目

来自分类Dev

从组合框中选择可见的文本

来自分类Dev

组合框即使将文本键入或从下拉列表中选择,也可将文本传输到文本框

来自分类Dev

在没有重新加载页面的组合框中选择元素时从数据库中自动填充文本框

来自分类Dev

选择多个组合框的值时如何显示文本框

来自分类Dev

从组合框中的选定项目填充文本框

来自分类Dev

从包含从自动完成的文本框中选择的项目的列表中删除项目

来自分类Dev

突出显示组合框项目(如果其文本以组合框的文本框的文本开头)

来自分类Dev

从列表视图中选择项目后,从数组更改文本框文本值

来自分类Dev

从 vb.net 中的文本框中选择特定文本

来自分类Dev

如何从Qlistwidget中选择项目,并更新Pyqt5中的文本框?

来自分类Dev

在文本框中选择多个单词,例如块选择

来自分类Dev

从列表项的文本框中选择部分文本

来自分类Dev

如果选择了某些组合框项目,则使文本块可见-MVVM

来自分类Dev

如何在使用文本输入元素的自定义Vaadin组合框中选择项目?

Related 相关文章

  1. 1

    从组合框中选择项目时,将新数据添加到文本框中

  2. 2

    从组合框中选择特定选项应该使文本框字段强制输入文本

  3. 3

    文本框启用禁用组合框选择

  4. 4

    使用VB在Word 2007中选择选项按钮时启用ActiveX文本框

  5. 5

    从文本框中选择文本时触发功能

  6. 6

    在AngularJS中选择单选按钮时,专注于文本框

  7. 7

    在Java的组合框中选择项目时更新JTable

  8. 8

    从组合框中选择项目时显示 MessageBox

  9. 9

    如何在文本框获得焦点时选择文本框中的特定文本

  10. 10

    选择特定项目时移除组合框项目

  11. 11

    在面板中选择多个文本框

  12. 12

    使用MVVM在WPF文本框中选择和复制文本

  13. 13

    获得焦点时尝试在对话框的文本框中选择文本

  14. 14

    如何使用JavaScript获取文本框中选择框的所有项目

  15. 15

    如何使用JavaScript获取文本框中选择框的所有项目

  16. 16

    从组合框中选择可见的文本

  17. 17

    组合框即使将文本键入或从下拉列表中选择,也可将文本传输到文本框

  18. 18

    在没有重新加载页面的组合框中选择元素时从数据库中自动填充文本框

  19. 19

    选择多个组合框的值时如何显示文本框

  20. 20

    从组合框中的选定项目填充文本框

  21. 21

    从包含从自动完成的文本框中选择的项目的列表中删除项目

  22. 22

    突出显示组合框项目(如果其文本以组合框的文本框的文本开头)

  23. 23

    从列表视图中选择项目后,从数组更改文本框文本值

  24. 24

    从 vb.net 中的文本框中选择特定文本

  25. 25

    如何从Qlistwidget中选择项目,并更新Pyqt5中的文本框?

  26. 26

    在文本框中选择多个单词,例如块选择

  27. 27

    从列表项的文本框中选择部分文本

  28. 28

    如果选择了某些组合框项目,则使文本块可见-MVVM

  29. 29

    如何在使用文本输入元素的自定义Vaadin组合框中选择项目?

热门标签

归档