我有一个组合框,其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的属性。
最好的方法是什么?
答案 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>