/// <summary> Конструктор </summary> public ViewModelContact() { ListModelContact = DataSourceContact.GetListModelContact(); ApplyFilter(); // автоматически присвоит CurrentListModelContact CallbackRouter.Instance.ListModelContactChanged += OnListModelContactChanged; CallbackRouter.Instance.ListModelContactStatusChanged += OnListModelContactStatusChanged; CallbackRouter.Instance.ListModelContactSubscriptionChanged += OnListModelContactSubscriptionChanged; CallbackRouter.Instance.ModelConnectStateChanged += OnModelConnectStateChanged; CallbackRouter.Instance.PresenceOffline += OnPresenceOffline; CommandApplyFilterAllContact = new Command(obj => ApplyFilterListFilterContact(@"ViewModelContact_AllContact")); CommandApplyFilterDodicallContact = new Command(obj => ApplyFilterListFilterContact(@"ViewModelContact_DodicallContact")); CommandApplyFilterSavedContact = new Command(obj => ApplyFilterListFilterContact(@"ViewModelContact_SavedContact")); CommandApplyFilterBlockedContact = new Command(obj => ApplyFilterListFilterContact(@"ViewModelContact_BlockedContact")); CommandApplyFilterWhiteContact = new Command(obj => ApplyFilterListFilterContact(@"ViewModelContact_WhiteContact")); CommandAddToWhiteModelContact = new Command(obj => { if (DataSourceContact.AddToWhiteModelContact(CurrentModelContact)) { ApplyFilter(); } }); CommandDeleteFromWhiteModelContact = new Command(obj => DeleteFromWhite()); CommandBlockModelContact = new Command(obj => { if (DataSourceContact.BlockModelContact(CurrentModelContact)) { ApplyFilter(); } }); CommandUnblockModelContact = new Command(obj => { if (DataSourceContact.UnblockModelContact(CurrentModelContact)) { ApplyFilter(); } }); CommandDeleteModelContact = new Command(obj => { if (DataSourceContact.DeleteModelContact(CurrentModelContact)) { ApplyFilter(); OnDeleteModelContactSuccessful(); } }); ModelConnectStateObj = DataSourceUtility.GetCurrentModelConnectState(); ChangedInviteUnread(); }
/// <summary> Обработчик изменения состояния подключений </summary> private void OnModelConnectStateChanged(object sender, ModelConnectState modelConnectState) { Action action = () => ModelConnectStateObj = DataSourceUtility.GetCurrentModelConnectState(); CurrentDispatcher.BeginInvoke(action); }
/// <summary> Обработчик изменения состояния подключений внутри логики C++ </summary> private void LogicModelConnectStateChangedHandler() { var modelConnectState = DataSourceUtility.GetCurrentModelConnectState(); OnModelConnectStateChanged(modelConnectState); }