Событие связывания с подпрограммой в контексте данных в wpf - PullRequest
0 голосов
/ 20 февраля 2019

Я создал обычный элемент управления под названием TestCombobox, который я использую в своем проекте.Он заполняется с использованием данных, полученных с использованием DataAdapter.при нажатии клавиш, таких как F4, F5, F6, F7, запускаются различные опции и, соответственно, работают такие, как добавление новой строки, изменение выбранной строки и т. д.

В какой-то момент данные должны быть обновлены (свежийданные должны быть извлечены из базы данных и заполнены в выпадающем списке)

У меня нет никакого понимания MVVM.

Что я хочу сделать, это когда пользователь нажимает кнопку F5 в поле со списком подпрограмму RefreshCombo изкласс, установленный как DataContext, должен быть выполнен.

Вот мой код (придерживайтесь проблемы. Остальное пропущено)

  1. Событие Custome, возникающее из Custom Control TestCombobox

    public delegate void RefreshEvent();
    public event RefreshEvent Refresh;
    
    protected override void OnKeyUp(KeyEventArgs e)
    {
        if (e.Key == Key.F5) Refresh?.Invoke();
        base.OnKeyUp(e);
    }
    
  2. Код из класса TestComboboxData

    DataTable dt;
    public DataTable Data
    {
        get => dt;
        set
        {
            dt = value;
            RaisePropertyChanged("Data");
        }
    }
    
    int _id;
    public int Id
    {
        get => _id;
        set
        {
            _id = value;
            RaisePropertyChanged("Id");
        }
    }
    
    public void RefreshCombo()
    {
           //do something here
    
    }
    
  3. Код XAML

    <local:TestCombobox ItemsSource="{Binding Data}" DisplayMemberPath="Co1" SelectedValuePath="Id" 
                        SelectedValue="{Binding Id, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource SelValue}}"
                        />
    

Спасибозаранее Амит

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...