将文本框绑定到组合框显示成员

本文关键字:显示 成员 组合 绑定 文本 | 更新日期: 2023-09-27 18:18:11

我有一个组合框,其中SelectedItem属性绑定到DataRowView, ItemSource绑定到DataView。

绑定是这样的:

   <ComboBox Grid.Row="1" Grid.Column="1" KeyboardNavigation.TabIndex="0" Width="300"
              ItemsSource="{Binding Path=MainConfigItems, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" 
            SelectedValuePath="Id" 
              DisplayMemberPath="Name"
              SelectedItem="{Binding MainConfigSelectedItem}"
              Name="cmbBoxMainConfig"
             VerticalAlignment="Center" HorizontalAlignment="Left" IsEnabled="{Binding IsEnabledMainConfig}">
  </ComboBox>

现在,根据一个条件,我需要隐藏组合框并在其位置显示一个文本框,其中文本作为组合框的显示成员。在本例中,DataRowView的'Name'属性。

最好的方法是什么?

将文本框绑定到组合框显示成员

为你的组合和文本框添加一个数据触发器:

<ComboBox.Style>
   <Style TargetType="ComboBox">
      <Style.Triggers>
        <DataTrigger Binding="{Binding Path=IsEnabledMainConfig, UpdateSourceTrigger=PropertyChanged}" Value="false" >
        <Setter Property="Visibility" Value="Hidden"/>
        </DataTrigger>
      </Style.Triggers>
  </Style>
</ComboBox.Style>
<TextBox Text="{Binding MainConfigSelectedItem.Name}"/>

如果MainConfigSelectedItem是一个DataRowView,你需要在你的绑定(MainConfigSelectedItem[Name])中使用索引器。

我将使用样式触发器来改变可见性