Поле со списком выбранных значений и переопределение toString() — MVVM WPF

#c# #wpf #xaml #combobox #datagrid

#c# #wpf #xaml #поле со списком #datagrid

Вопрос:

У меня есть поле со списком, в котором отображаются данные из переопределения ToString() . У меня также есть текстовый столбец datagrid, который также получает свои значения из переопределения ToString() .

Я хочу синхронизировать combobox с сеткой данных, чтобы при нажатии на третью строку данных отображалось то же значение в combobox, а при изменении значения в combobox обновлялась ячейка datagrid.

Проблема в том, что я, похоже, не могу понять, как это сделать с ToString() . Это работает, когда я привязываю его к свойству с помощью метода получения и параметра установки. Но мне нужно, чтобы оно было включено ToString() .

Модель

   public class SifKorisnici: INotifyPropertyChanged
    {
        private string _ime;
        private string _prezime;

        public string Ime
        {
            get { return _ime; }
            set
            {
                _ime = value;
                OnPropertyChanged("Ime");
            }
        }

        public string Prezime
        {
            get { return _prezime; }
            set
            {
                _prezime = value;
                OnPropertyChanged("Prezime");
            }
        }

        public override string ToString()
        {
            return Prezime   " "   Ime;
        }
    }
  

Datagrid

   <DataGrid ItemsSource="{Binding ListaOdjeli,Mode =TwoWay,UpdateSourceTrigger=PropertyChanged}" 
                  AutoGenerateColumns="False" CanUserAddRows="False" Margin="0,180,0,0"
                  IsReadOnly="True"
                  IsSynchronizedWithCurrentItem="True"
                  SelectedItem="{Binding SelectedItems,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
            <DataGrid.Columns>

                <DataGridTextColumn Header="Voditelj" Binding="{Binding SifKorisnici,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/>
        </DataGrid>

  

Поле со списком

   <ComboBox Name="OdaberiKorisnika" ItemsSource="{Binding ListaKorisnikaCombo, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                  HorizontalAlignment="Left" Margin="111,142,0,0" VerticalAlignment="Top" 
                  Width="120" 
                  IsReadOnly="True"
                  IsSynchronizedWithCurrentItem="True"
                  SelectedItem="{Binding SelectedKorisnici,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                  SelectedValue="{Binding SelectedItems.SifKorisnici??,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                  SelectedValuePath="SifKorisnici??"

                  IsEnabled="{Binding JeOmogucenGumb}"
        </ComboBox>

  

Комментарии:

1. Свойство уже является строкой, чего вы ожидаете другого? В противном случае поместите свое специальное форматирование в свойство get.

2. Я знаю, что это строка, что мне нужно, так это привязать это свойство к выбранному значению и выбранному пути значения, чтобы, когда пользователь нажимает на datagrid, в combobox отображалось выбранное значение, и когда мы меняем значение combobox, datagrid обновляет его