формы xamarin Как передать значение enum в XAML и использовать его в инструкции switch?

#c# #xaml #xamarin #enums #xamarin.forms

#c# #xaml #xamarin #перечисления #xamarin.forms

Вопрос:

Я объявил enum с некоторыми значениями и хочу перейти к моему формируемому параметру. Вот мой код на C #:

         public MyControllerView()
        {
         ContentEntry.TextChanged  = Entry_TextChanged;
        }         
                public string Formated
                {
                    get
                    {
                        return formatedText;
                    }
                    set
                    {
                        formatedText = value;
                    }
                }

        public enum FomationType
                {
                    NameValidation,
                    CardNrValidation,
                    ExpDate
                };
    // here I want to use my enum in switch statement, but I can't, because I can't modify my method parameters

private void Entry_TextChanged(object sender, TextChangedEventArgs e)
        {
            FomationType FomationType;
            switch (FomationType)
            {
                case FomationType.NameValidation:
                    ToUpper(ent);
                    break;
                case FomationType.CardNrValidation:
                    CardNumberValidation(ent);
                    break;
                case FomationType.ExpDate:
                    ExpDate(ent, e);
                    break;
            }
}
  

И вот мой код XAML с формируемым параметром, куда я должен передать свое значение enum:

 <ContentPage.Content>

    <StackLayout Padding="7,7,7,7" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" Spacing="0">

      <cv:MyControllerView LabelText="some text 4" Placeholder="some text 4" Formated="" Keyboard="Text" >
      </cv:MyControllerView>

      <cv:MyControllerView LabelText="some text 3" Placeholder="some text 3" Formated="" Keyboard="Numeric"  >
      </cv:MyControllerView>

      <cv:MyControllerView LabelText="some text 2" Placeholder="some text 2" Formated="" Keyboard="Numeric" >
      </cv:MyControllerView>

    </StackLayout>
  </ContentPage.Content>
  

Теперь немного о том, как я должен передать FormationType anum параметру Formated=»» . И должен ли я присвоить мою форматированную строку значениям enum?

Ответ №1:

Что ж, решение этой проблемы, связанной с этим сообщением на форуме, помогло мне разобраться во всем. Вот мой код на C #:

 public enum FomationType
        {
            NameValidation,
            CardNrValidation,
            ExpDate
        };

        public FomationType Formated { get; set; }
  

и вот мой статус switch:

 var ent = sender as Entry;
            switch (Formated)
            {
                case FomationType.NameValidation:
                    ToUpper(ent);
                    break;
                case FomationType.CardNrValidation:
                    CardNumberValidation(ent);
                    break;
                case FomationType.ExpDate:
                    ExpDate(ent, e);
                    break;
            }
  

Свойство XAML не изменяется:

 <cv:MyControllerView LabelText="some text 4" Placeholder="some text 4" Formated="NameValidation" Keyboard="Text" >