Метод службы зависимостей призмы Xamarin не может получить переменную текущего контекста в нативном - PullRequest
0 голосов
/ 30 апреля 2018

Может кто-нибудь помочь мне с моей проблемой? пытался решить это почти неделю сейчас. Кстати. Я использую призму на xamarin.

Вот мои примеры кода:

Проект Xamarin

Интерфейс

public interface IVideoCommands
{
    void OnToggleVideo();
}

ViewModel

void OnToogleCommandVid()
{

    _dependencyService.Get<IVideoCommands>().OnToggleVideo();

}

Android Project

[assembly: Xamarin.Forms.Dependency(typeof(VideoService))]
namespace XTPProto.Droid.Services
{



    public class VideoService: Activity, IVideoCommands
    {

        private var libraryVariable _libVar;          

        private bool _isVideoEnabled;

        public bool IsVideoEnabled
        {
            get { return _isVideoEnabled; }
            set
            {
                if (_isVideoEnabled== value)
                    return;
                _isVideoEnabled= value;
                OnVideoChanged();

            }
        }

        private void init()
        {
          _libVar = new libraryVariable ();

        }

         protected void OnVideoChanged()
        {
            if (_libVar== null)
                return;
            if (_libVar.Function != IsVideoEnabled)
                _libVar.Function = IsVideoEnabled;
        }


        bool toggleVid = false;

        *Interface function

        void OnToggleVideo()
        {
            IsVideoEnabled = toggleVid = !toggleVid;

        }

    }

}

Каждый раз, когда я активирую интерфейсную функцию, все переменные в классе android не инициализируются, что означает, что интерфейс не отделен от контекста класса (IMO), переменные в классе всегда возвращают нуль в методе, где интерфейс назывался.

Есть ли правильный способ заставить функцию интерфейса работать с текущим контекстом класса android?

Я уже попробовал

 (_activity as Activity).RunOnUiThread(() => { IsVideoEnabled = vidToggle = !vidToggle; });

все еще не работает :( кто-нибудь, пожалуйста, помогите?

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