Список массивов, показывающий только самый последний добавленный объект [дубликат]

Я не верю, что диспетчер может отправить сообщение (или задержать) обновление свойств - это хорошее решение, это скорее обходной путь, который на самом деле не нужен. Следующее решение i полностью mvvm и не требует диспетчера.

  • Сначала привяжите выбранный элемент с явным режимом привязки. // это позволяет нам решить, следует ли компилировать с использованием метода UpdateSource () изменения в виртуальной машине или для возврата с использованием метода UpdateTarget () в пользовательском интерфейсе.
  • Затем добавьте метод для виртуальной машины, который подтверждает, разрешено ли изменение (этот метод может содержать службу, которая запрашивает подтверждение пользователя и возвращает bool).

В коде представления за крючком к событию SelectionChanged и обновлению источника (то есть виртуальной машины) или цели (то есть V) в соответствии с тем, возвращал ли метод VM.ConfirmChange (...) следующее значение:

    private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if(e.AddedItems.Count != 0)
        {
            var selectedItem = e.AddedItems[0];
            if (e.AddedItems[0] != _ViewModel.SelectedFormatType)
            {
                var comboBoxSelectedItemBinder = _TypesComboBox.GetBindingExpression(Selector.SelectedItemProperty); //_TypesComboBox is the name of the ComboBox control
                if (_ViewModel.ConfirmChange(selectedItem))
                {
                    // Update the VM.SelectedItem property if the user confirms the change.
                    comboBoxSelectedItemBinder.UpdateSource();
                }
                else
                {
                    //otherwise update the view in accordance to the VM.SelectedItem property 
                    comboBoxSelectedItemBinder.UpdateTarget();
                }
            }
        }
    }
0
задан Sanjeev 19 January 2019 в 04:25
поделиться

2 ответа

сделать три FultonObj не использовать один

    fuOb1.setFileNo(file1);
    fuOb1.setParcelId(parcelId1);
    fuOb1.setSitus(situs1);
    list.add(fuOb1);

    fuOb2.setFileNo(file2);
    fuOb2.setParcelId(parcelId2);
    fuOb2.setSitus(situs2);
    list.add(fuOb2);

    fuOb3.setFileNo(file3);
    fuOb3.setParcelId(parcelId3);
    fuOb3.setSitus(situs3);
    list.add(fuOb3);
0
ответ дан TongChen 19 January 2019 в 04:25
поделиться

Ваша программа должна быть такой. Каждый раз, когда вы устанавливаете данные в fuOb, они отменяют предыдущие данные.

FultonObj fuOb1 = new FultonObj(); 
fuOb1.setFileNo(file1); 
fuOb1.setParcelId(parcelId1); 
fuOb1.setSitus(situs1); 
list.add(fuOb1); 

FultonObj fuOb2 = new FultonObj(); 
fuOb2.setFileNo(file2); 
fuOb2.setParcelId(parcelId2); 
fuOb2.setSitus(situs2); 
list.add(fuOb2);
0
ответ дан suneel 19 January 2019 в 04:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: