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

时间:2011-12-19 11:15:08

标签: c# wpf xaml data-binding wpf-controls

我有一个组合框,其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>

现在,根据条件,我需要隐藏组合框并在其位置显示文本框,文本作为组合框的显示成员。在这种情况下,&#39;名称&#39; DataRowView的属性。

最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

<TextBox Text="{Binding MainConfigSelectedItem.Name}"/>

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

我会使用样式触发来改变可见性。

答案 1 :(得分:0)

在您的组合和文本框上放置一个数据触发器:

<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>