summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls/ViewContainers/StateViewContainer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Controls/ViewContainers/StateViewContainer.cs')
-rw-r--r--Xamarin.Forms.Controls/ViewContainers/StateViewContainer.cs48
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