private async void PinUpdate(PinButton pinButton) { var pin = (Pin)pinButton.DataContext; switch (pin.ConfiguredAction) { case PinAction.AnalogRead: pin.AnalogReadAsync(); break; case PinAction.AnalogWrite: case PinAction.AnalogWriteDac: AnalogPinWriteCaption.Text = string.Format(analogPinWriteCaption, pin.Caption); AnalogPinSlider.Minimum = 0; AnalogPinSlider.Maximum = pin.MaxAnalogWriteValue; AnalogPinSlider.Value = pin.Value; AnalogPinSlider.DataContext = pin; AnalogPinValueText.Text = pin.Value.ToString(); AnalogValueFlyout.ShowAt(pinButton); break; case PinAction.DigitalRead: await pin.DigitalReadAsync(); break; case PinAction.DigitalWrite: pin.DigitalWriteAsync(); break; } }
private void SetConfiguredAction(PinButton pinButton, PinAction pinAction = PinAction.None) { PinSetup.Hide(); var pin = (Pin)pinButton.DataContext; pin.Value = 0; pin.ConfiguredAction = pinAction; SavePinState(pin); }
/// <summary> /// 附加Pin按钮 /// </summary> private void AttachPinButton() { if (PinButton != null) { PinButton.Click += PinButton_Click; PinButton.RemoveHandler(ButtonBase.ClickEvent, new RoutedEventHandler(PinButton_Click)); } var pinButton = this.GetChildControl <Button>("PART_PIN_BTN"); if (pinButton != null) { pinButton.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(PinButton_Click)); PinButton = pinButton; } }
private void SetupButton(PinButton pinButton) { var pin = (Pin)pinButton.DataContext; PinSetupCaption.Text = pin.Caption; PinSetupAnalogRead.Visibility = pin.Functions.Contains(PinAction.AnalogRead) ? Visibility.Visible : Visibility.Collapsed; PinSetupAnalogWrite.Visibility = pin.Functions.Contains(PinAction.AnalogWrite) ? Visibility.Visible : Visibility.Collapsed; PinSetupAnalogWriteDac.Visibility = pin.Functions.Contains(PinAction.AnalogWriteDac) ? Visibility.Visible : Visibility.Collapsed; PinSetupDigitalgRead.Visibility = pin.Functions.Contains(PinAction.DigitalRead) ? Visibility.Visible : Visibility.Collapsed; PinSetupDigitalWrite.Visibility = pin.Functions.Contains(PinAction.DigitalWrite) ? Visibility.Visible : Visibility.Collapsed; PinSetupAnalogRead.DataContext = pinButton; PinSetupAnalogWrite.DataContext = pinButton; PinSetupAnalogWriteDac.DataContext = pinButton; PinSetupDigitalgRead.DataContext = pinButton; PinSetupDigitalWrite.DataContext = pinButton; PinSetup.ShowAt(pinButton); }
protected override void InitBindings() { Bindings.Add(this.SetBinding(() => ViewModel.CurrentData) .WhenSourceChanges(async() => { ProfilePageGeneralTabScrollingContainer.ScrollY = 0; if (string.IsNullOrEmpty(ViewModel.CurrentData.User.ImgUrl)) { ProfilePageGeneralTabAnimeUserImg.Visibility = ViewStates.Invisible; ProfilePageGeneralTabImagePlaceholder.Visibility = ViewStates.Visible; } else { ProfilePageGeneralTabAnimeUserImg.Into(ViewModel.CurrentData.User.ImgUrl); ProfilePageGeneralTabImagePlaceholder.Visibility = ViewStates.Gone; } ProfilePageGeneralTabDetailsList.SetAdapter( ViewModel.CurrentData.Details.GetAdapter(GetDetailTemplateDelegate)); ProfilePageGeneralTabFriendsGrid.ItemHeight = ProfilePageGeneralTabFriendsGrid.ItemWidth = DimensionsHelper.DpToPx(65); ProfilePageGeneralTabFriendsGrid.SetColumnWidth((int)ProfilePageGeneralTabFriendsGrid.ItemWidth); if (ViewModel.CurrentData.Friends.Any()) { ProfilePageGeneralTabFriendsGrid.Adapter = ViewModel.CurrentData.Friends.GetAdapter(GetFriendTemplateDelegate); ProfilePageGeneralTabFriendsEmptyNotice.Visibility = ViewStates.Gone; ProfilePageGeneralTabMoreFriendsButton.Visibility = ViewStates.Visible; } else { ProfilePageGeneralTabFriendsGrid.Adapter = null; ProfilePageGeneralTabFriendsEmptyNotice.Visibility = ViewStates.Visible; ProfilePageGeneralTabMoreFriendsButton.Visibility = ViewStates.Gone; } await Task.Delay(500); PopulateComments(); })); Bindings.Add( this.SetBinding(() => ViewModel.EmptyCommentsNoticeVisibility, () => ProfilePageGeneralTabCommentsEmptyNotice.Visibility) .ConvertSourceToTarget(Converters.BoolToVisibility)); Bindings.Add(this.SetBinding(() => ViewModel.LoadingOhersLibrariesProgressVisiblity).WhenSourceChanges(() => { if (ViewModel.LoadingOhersLibrariesProgressVisiblity) { ProfilePageGeneralTabCompareList.Enabled = false; } else { ProfilePageGeneralTabCompareList.Enabled = true; } })); Bindings.Add(this.SetBinding(() => ViewModel.CommentInputBoxVisibility).WhenSourceChanges(() => { if (ViewModel.CommentInputBoxVisibility) { ProfilePageGeneralTabCommentInput.Visibility = ViewStates.Visible; ProfilePageGeneralTabSendCommentButton.Visibility = ViewStates.Visible; } else { ProfilePageGeneralTabCommentInput.Visibility = ViewStates.Gone; ProfilePageGeneralTabSendCommentButton.Visibility = ViewStates.Gone; } })); Bindings.Add( this.SetBinding(() => ViewModel.IsMyProfile, () => ProfilePageGeneralTabCompareList.Visibility) .ConvertSourceToTarget(Converters.BoolToVisibilityInverted)); Bindings.Add( this.SetBinding(() => ViewModel.CommentText, () => ProfilePageGeneralTabCommentInput.Text, BindingMode.TwoWay)); Bindings.Add( this.SetBinding(() => ViewModel.PinProfileVisibility, () => PinButton.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility)); Bindings.Add( this.SetBinding(() => ViewModel.LoadingCommentsVisiblity, () => UpdateSpinner.Visibility) .ConvertSourceToTarget(Converters.BoolToVisibility)); Bindings.Add(this.SetBinding(() => ViewModel.IsPinned).WhenSourceChanges(() => { if (!ViewModel.PinProfileVisibility) { return; } if (ViewModel.IsPinned) { PinButton.SetBackgroundColor(new Color(ResourceExtension.AccentColour)); PinButtonIcon.Rotation = 0; PinButtonIcon.SetImageResource(Resource.Drawable.icon_unpin); } else { PinButton.SetBackgroundColor(new Color(ResourceExtension.OpaqueAccentColour)); PinButtonIcon.Rotation = 45; PinButtonIcon.SetImageResource(Resource.Drawable.icon_pin); } })); PinButton.SetOnClickListener(new OnClickListener(view => { ViewModel.IsPinned = !ViewModel.IsPinned; PinButtonIcon.Rotation = ViewModel.IsPinned ? 0 : 45; })); ProfilePageGeneralTabAnimeListButton.SetOnClickListener(new OnClickListener(v => ViewModel.NavigateAnimeListCommand.Execute(null))); ProfilePageGeneralTabMangaListButton.SetOnClickListener(new OnClickListener(v => ViewModel.NavigateMangaListCommand.Execute(null))); ProfilePageGeneralTabHistoryButton.SetOnClickListener(new OnClickListener(v => ViewModel.NavigateHistoryCommand.Execute(null))); ProfilePageGeneralTabSendCommentButton.SetOnClickListener(new OnClickListener(v => ViewModel.SendCommentCommand.Execute(null))); ProfilePageGeneralTabActionButton.SetOnClickListener(new OnClickListener(v => ProfilePageGeneralTabActionButtonOnClick())); ProfilePageGeneralTabCompareList.SetOnClickListener(new OnClickListener(v => ViewModel.NavigateComparisonCommand.Execute(null))); ProfilePageGeneralTabMoreFriendsButton.SetOnClickListener(new OnClickListener(v => ViewModel.NavigateFriendsCommand.Execute(null))); ProfilePageGeneralTabMoreFriendsButton.SetOnClickListener(new OnClickListener(v => ViewModel.NavigateFriendsCommand.Execute(null))); ReloadButton.SetOnClickListener(new OnClickListener(view => ViewModel.RefreshCommentsCommand.Execute(null))); PopulateComments(); ProfilePageGeneralTabScrollingContainer.ViewTreeObserver.ScrollChanged -= ViewTreeObserverOnScrollChanged; ProfilePageGeneralTabScrollingContainer.ViewTreeObserver.ScrollChanged += ViewTreeObserverOnScrollChanged; ProfilePageGeneralTabScrollingContainer.Touch -= RootViewOnTouch; ProfilePageGeneralTabScrollingContainer.Touch += RootViewOnTouch; ProfilePageGeneralTabCommentsList.Touch -= RootViewOnTouch; ProfilePageGeneralTabCommentsList.Touch += RootViewOnTouch; }