Привязка текстового поля к элементу отображения в выпадающем списке - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть выпадающий список со свойством 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.

Как лучше всего это сделать?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2011

Поместите источник данных в ваше поле со списком:

<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>
0 голосов
/ 19 декабря 2011
<TextBox Text="{Binding MainConfigSelectedItem.Name}"/>

, если MainConfigSelectedItem является DataRowView, вам необходимо использовать индексатор в привязке (MainConfigSelectedItem [Name]).

Я бы использовал триггер стиля для изменения видимости.

...