JimB_ Ответов: 1

Как добавить значение в текстовое поле при нажатии кнопки добавить элемент значение выбирается из выпадающего списка


 private List<ListItem>  _tyreList;
public List<ListItem> TyreList;
{
  get
    {
                return _tyre;
     }
    set
      {
                _tyre= value;
                RaisePropertyChanged();
      }
}

<ComboBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="1"  SelectedValuePath="Value" DisplayMemberPath="Name" ItemsSource="{Binding ElementName=LayoutRoot, Path=DataContext.TyreList}" SelectedItem="{Binding TyreList}"/>

                                        
<Button Command="{Binding AddTyreCommand}" Grid.Row="3" Grid.Column="4" Grid.ColumnSpan="2" Content="Add Tyre"  Width="150" Height="25" HorizontalAlignment="Left" />
                                        
<TextBox  Name="tbMultiLine"  TextWrapping="Wrap"  AcceptsReturn="True"  VerticalScrollBarVisibility="Visible" Text="{Binding what binding to set here => TyreList}" />


Что я уже пробовал:

private RelayCommand _addTyreCommand;
public RelayCommand AddTyreCommand => _addTyreCommand?? (_addTyreCommand= new RelayCommand(AddTyres , CanAddTyres));
   
private void AddTyres ()
{
//something here

 }      

 private bool CanAddTyres() => true;//to add tyres

1 Ответов

Рейтинг:
6

M.Kamran Asim

ОК
Первый
Создайте общедоступное свойство ListItem и привяжите его к текстовому полю

public ListItem SelectedItem 
{
  get=>selectedItem;
  set
     {
      selectedItem=value;
      RaisePropertyChange();
     }
}

<TextBox Text = "{Binding SelectedItem, UpdateSourceTrigger=PropertyChanged}"/>



Во-вторых использовать RelayCommand, который принимает параметр, как
RelayCommand<object> AddtyreCommand=> -----new RelayCommand(Addtyres)
where 
private void AddTyres(object item)
{
   SelectedItem  = item as ListItem;
.......
}



Третье название в ComboBox и кнопка определить CommandParameter
<Button .... CommandParameter="{Binding ElementName=comboTyreList, Path=SelectedItem" />


Вот и все. С тобой покончено.
Извините за неподходящее форматирование и код.