diff options
Diffstat (limited to 'Xamarin.Forms.Controls/ViewContainers/StateViewContainer.cs')
-rw-r--r-- | Xamarin.Forms.Controls/ViewContainers/StateViewContainer.cs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls/ViewContainers/StateViewContainer.cs b/Xamarin.Forms.Controls/ViewContainers/StateViewContainer.cs new file mode 100644 index 00000000..b08cc306 --- /dev/null +++ b/Xamarin.Forms.Controls/ViewContainers/StateViewContainer.cs @@ -0,0 +1,48 @@ +using System; + +namespace Xamarin.Forms.Controls +{ + internal class StateViewContainer<T> : ViewContainer<T> + where T : View + { + public Button StateChangeButton { get; private set; } + public Label ViewInteractionLabel { get; private set; } + + public StateViewContainer (Enum formsMember, T view) : base (formsMember, view) + { + var name = formsMember.ToString (); + + var stateTitleLabel = new Label { + Text = name + "?" + }; + + ViewInteractionLabel = new Label { + Text = "Interacted? : False" + }; + + var stateValueLabel = new Label { + BindingContext = view, + AutomationId = name + "StateLabel" + }; + if (name != "Focus") + stateValueLabel.SetBinding (Label.TextProperty, name, converter: new GenericValueConverter (o => o.ToString())); + + StateChangeButton = new Button { + Text = "Change State: " + name, + AutomationId = name + "StateButton" + }; + + var labelLayout = new StackLayout { + Orientation = StackOrientation.Horizontal, + Children = { + stateTitleLabel, + stateValueLabel + } + }; + + ContainerLayout.Children.Add (ViewInteractionLabel); + ContainerLayout.Children.Add (labelLayout); + ContainerLayout.Children.Add (StateChangeButton); + } + } +}
\ No newline at end of file |